プログラムが実行されている現在のディレクトリにファイルを作成する場合、正しいパスを取得することが重要です。ただし、コードでは、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); } int main() { std::cout << "my directory is " << ExePath() << "\n"; }
以上がC で現在のディレクトリのパスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。