お世話になります.
開発環境はVC++.NET2003,FramWorkです.
一時ファイルを作成するため,TMPフォルダのパスを取得しようと,
System::String* Path = System::IO::Path::GetTempPath();
と記述すると,
--------------------------------------------------------------------------
error C2039: 'GetTempPathA' : 'System::IO::Path' のメンバではありません。
error C2660: 'GetTempPathA' : 関数に 0 個の引数を指定できません。
--------------------------------------------------------------------------
とエラー文が返ってきてしまいます.
新規で作ったフレームワークでは問題なくコンパイルが通ったので,他の何かと干渉してるんだろうとは推測できるのですが……DLLをLIBなしでインポートしたり長文になってたり,何所が悪いのか探すのが難しい現状です.
こういうエラーが起こりうる例示など,何方か教えて頂けませんでしょうか.
宜しくお願いします.
(未解決状態でスレッドが止まっている過去2件の質問も,まだ解決に至っていないのでそちらの方も分る方,宜しくお願いします)
多分これと同じかな。
[C++/CLI]windows.hをインクルードした状態で、System::IO::Directory::GetCurrentDirectoryメソッドを使うには
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=651000&SiteID=7
あ、
>VC++.NET2003
ですか。
リンク先の対処方(一番最後の方のやつ)ですが、2005用なのでやらないほうがいいでしょう。
(_M_CEEって#defineが2005で追加されたものなのかどうなのかがわからないので。)
MessageBox の宣言部分のヘッダを確認して、同じように直すならOKでしょうけど。
他の対処として。
GetTempPathをつかうルーチンをwindows.hをインクルードしないcppに記述するとか、
APIの::GetTempPathを直接呼ぶとかで対処できるでしょう。
Blue様,ありがとうございます.
原因はWindows.hだったようで,インクルードされてないファイルに移したら無事動かすことが出来ました.
ツイート | ![]() |