ホームページ  >  記事  >  バックエンド開発  >  GetCurrentDirectory() が例外をスローするのはなぜですか?それを修正するにはどうすればよいですか?

GetCurrentDirectory() が例外をスローするのはなぜですか?それを修正するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 17:53:02433ブラウズ

Why is GetCurrentDirectory() throwing an exception and how can I fix it?

現在のディレクトリの取得エラー

問題:
GetCurrentDirectory() を使用して現在のディレクトリを取得しようとすると例外が発生しました。

可能原因:
LPTSTR 変数 NPath が適切に初期化されていません。

推奨される解決策:
この問題に対処するには、GetCurrentDirectory() を使用する前に NPath にメモリを割り当てます。 。あるいは、GetModuleFileName() 関数を使用して実行可能パスを取得することを検討してください。

GetModuleFileName() を使用するコード例:

TCHAR buffer[MAX_PATH] = { 0 };
GetModuleFileName( NULL, buffer, MAX_PATH );

コード例からディレクトリを抽出していますパス:

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);
}

GetModuleFileName() を利用してディレクトリ部分を抽出すると、例外が発生することなく現在のディレクトリを正常に取得できます。

以上がGetCurrentDirectory() が例外をスローするのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。