0

リリースをエミュレートし、リソースを検索するツールを作成したいので、プログラムをビルドするために既定の Visual Studio プロジェクト パスを使用していません。設定をいじった後、VS を正しいフォルダーに出力し、DLL をメイン フォルダーの bin フォルダーにコピーするようにしました。ただし、DLL を検索するために生成された .EXE を取得できません。ディレクトリ内にあるものしか検索されませんが、そのように面倒なことはしたくありません。デバッガーは正常に動作しますが、スタンドアロンでは動作しません。VSにDLLの場所を.EXEに伝えるように指示するにはどうすればよいですか? PATH を編集する必要がありますか? 私はそれで良い経験をしたことがないので、それは面倒です。プロジェクト設定 -> VC++ ディレクトリを試しましたが、.LIB ファイル用であると想定しているため、まだ見つかりません。

これが私のフォルダ階層の図です。

-root
--bin
---[必要な DLL]
--data
---[プログラム リソース (画像、サウンド、構成など)]
--Program.exe

Visual C++ 2010 Express Edition を使用。

4

2 に答える 2

1

VSにDLLの場所を.EXEに伝えるように指示するにはどうすればよいですか?

リリース実行構成を編集し、dll が存在する作業ディレクトリを変更します。

ここに画像の説明を入力

これを機能させるには、ide を介して exe を実行する必要があります。

PATH を編集する必要がありますか?

いいえ

于 2012-04-03T21:01:21.873 に答える
1

これは Visual Studio とは関係ありません。DLL が見つからないのはWindowsです。任意のサブディレクトリで DLL を探す必要はありません。それ以外の場合、これらが暗黙的に読み込まれた DLL なのか、それとも LoadLibrary を使用して自分で読み込むのかは明確ではありません。

LoadLibrary() を使用する場合、大きな問題はありません。DLL のフル パス名を渡すだけです。GetModuleFileName(NULL, ...) は、パス文字列の作成に役立ちます。これらが暗黙的にロードされると、大きな問題が発生します。その場合、DLL を EXE と同じディレクトリに格納しない理由はほとんどありません。はい、PATH 環境変数を台無しにしたくありません。または現在の作業ディレクトリ。

于 2012-04-03T21:04:12.517 に答える