1

Visual Studio を使用して作成した C++ プログラムがあります。.config ファイルからいくつかの変数を読み取る必要があります。VS からプログラムを実行すると (つまり、VS ソリューションを開いて [デバッグなしで開始] ボタンを押すと)、.config ファイルが "release" または "debug" ディレクトリにない限り、.config ファイルが見つからないことに気付きました。ただし、.config ファイルを .sln ファイルと同じディレクトリに保持したまま、VS ソリューションからプログラムを実行できるようにしたいと考えています。おそらくソースコードのどこかに、.configファイルのパスをこのディレクトリに設定する方法はありますか?

ありがとう。

4

3 に答える 3

3

Visual Studio のディレクトリ マクロを利用して、ソリューション ディレクトリに追加のインクルード パスを設定します。以前、このサイトでインクルード ディレクトリに関する質問に回答したので、作成した図を次に示します。

大きなリンクはこちら ここに画像の説明を入力

左側のテキストに注意を払わないでください。右側の黒いテキストが探しているものです。$(SolutionDir)ソリューションのディレクトリを見つけるマクロであり、これを追加すると、プログラムがプログラム中にこのディレクトリにアクセスできるようになります。

于 2013-05-24T18:18:07.400 に答える
1

GetModuleFileName を呼び出して、exe ファイルへのフル パスを取得できます。そこから最下位レベル (/debug または /release) を削除して、プロジェクト パスを取得できます。

それはあなたが求めたものを得るはずですが、あなたが求めたものは良いアプローチではありません. 構成ファイルを exe ディレクトリに配置すると、後で管理者以外のユーザー権限で問題が発生します。このようなファイルの推奨される場所は、SHGetFolderPath を呼び出して見つけることができます。この場所で、アプリのアクセス可能なフォルダーを作成できます。

于 2013-05-24T20:16:33.107 に答える