コードは現在のディレクトリにファイルを作成しようとしていますが、GetCurrentDirectory() で例外が発生します。この問題を理解するために、使用されるパラメーターを詳しく見てみましょう。
さらに、GetCurrentDirectory() を使用して実行可能パスを取得することは信頼できません。代わりに GetModuleFileName 関数を使用してください:
TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName(NULL, buffer, MAX_PATH);
より包括的なアプローチとして、ファイル名なしでディレクトリを抽出する次の関数を検討してください:
#include <windows.h> #include <string> #include <iostream> std::wstring ExePath() { TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName(NULL, buffer, MAX_PATH); std::wstring::size_type pos = std::wstring(buffer).find_last_of(L"\/"); return std::wstring(buffer).substr(0, pos); }
以上がファイルを作成しようとすると GetCurrentDirectory() が例外をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。