CreateDirectoryのコンパイルエラーを回避するには

解決


masat21  2005-06-17 23:09:38  No: 57967

ぶっちゃけ簡単な事かもしれませんが、質問です。
Directory::CreateDirectory("パス名")を入れたところ、
下記に示すコンパイルエラーが表示されました。
ちなみに判定文で使用しているDirectory::Exists("パス名")は、
コンパイルに成功しています。

test.cpp(61) : error C2039: 'CreateDirectoryA' : 'System::IO::Directory' のメンバではありません。
        test.cpp(0) : 'System::IO::Directory' の宣言を確認してください。
test.cpp(61) : error C2660: 'CreateDirectoryA' : 関数に 1 個の引数を指定できません。

対処方法についてご教示願います。

P.S.
.NETは奥が深い!


Blue  2005-06-17 23:21:49  No: 57968

MSDNはみましたか?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemiodirectoryclasscreatedirectorytopic.asp

一応サンプルのっているようですがどうでしょうか?


masat21  2005-06-17 23:33:57  No: 57969

回答ありがとうございます。
もちろんMSDNを参照しています。

DirectoryInfo::Create();  
でコンパイル成功しました。

Directory::Create("パス名")
のコンパイル失敗の要因については、こちらで再度調査します。

以上


YuO  2005-06-18 00:19:39  No: 57970

windows.hをインクルードしていませんか?

windows.hには,
#ifdef UNICODE
#define CreateDirectory CreateDirectoryW
#else
#define CreateDirectory CreateDirectoryA
#endif
のような記述があります。

windows.hをインクルードしているのであれば,
#undef CreateDirectory
としてやることで,CreateDirectoryがCreateDirectoryAに化けることを防ぐことが出来ます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加