ホームページ > バックエンド開発 > C++ > ファイルを作成しようとすると GetCurrentDirectory() が例外をスローするのはなぜですか?

ファイルを作成しようとすると GetCurrentDirectory() が例外をスローするのはなぜですか?

Linda Hamilton
リリース: 2024-11-08 14:59:01
オリジナル
240 人が閲覧しました

Why is GetCurrentDirectory() throwing an exception when trying to create a file?

GetCurrentDirectory() 例外のトラブルシューティング

コードは現在のディレクトリにファイルを作成しようとしていますが、GetCurrentDirectory() で例外が発生します。この問題を理解するために、使用されるパラメーターを詳しく見てみましょう。

  • MAX_PATH: これは、Windows でサポートされる最大パス サイズを表す定数です。 NPath = NULL の代わりに TCHAR Buffer[MAX_PATH] を使用します。
  • NPath: LPTSTR 型は文字列へのポインターです。最初に TCHAR Buffer[MAX_PATH] を使用して初期化します。

さらに、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート