0

私は、外部 Dll に依存する C++ プログラムを持っています [dependent.dll としましょう]。

  • 実行可能フォルダーのdependent.dll、正常に動作しますが、そのままにしておくと
  • いくつかのカスタムフォルダーにdependent.dllがありません。

私が試してみました

LPCTSTR deplibFullPath = "C:\Program Files\My_Program\Dlls\dependent.dll";
HMODULE hMod = LoadLibraryEx(deplibFullPath , NULL, LOAD_WITH_ALTERED_SEARCH_PATH);

null は返されませんが、dependent.dll の関数にアクセスするたびに、正常に動作しません (クラッシュ)

私が間違っている場所や、私がしなければならない追加のアイデア。

ありがとう

-パンカジ

4

3 に答える 3

3

あなたの道は間違っています。そのはず

LPCTSTR deplibFullPath = "C:\\Program Files\\My_Program\\Dlls\\dependent.dll";

\ は、文字列内の特別なコマンドをエスケープするために使用されるためです。

于 2012-09-26T15:24:23.490 に答える
2

たぶんあなたのdllは同じフォルダから他のdll(依存関係)を必要とします。AddDllDirectoryをロードする前に、それを呼び出してみてください。

そして、私はあなたのパスの単一の「\」が単なるコピーアンドペーストエラーであると思います...

于 2012-09-26T15:29:35.830 に答える
0

私は答えを得ました、問題は私のLoadLibraryEx関数にありませんでしたが、私はGetProcAddressを正しく使用していませんでした。:(

于 2012-09-26T18:03:15.703 に答える