サード パーティの dll (つまり、ソース コードがない) をアプリケーションにロードしようとしています。Windows XP 32 ビット システムでは正常にロードされますが、Windows 7 システムでは、GetLastError() からのエラー #998 を引用してロードに失敗します。
dll エクスポート ビューアーを使用して、インポートおよびエクスポートされた dll のシンボルを表示したところ、インポート テーブルにリストされている 3 つを除くすべての dll が、このサード パーティ ベンダーからのものであることがわかりました。そうではなかったものは次のとおりです
。kernel32.dll
mingwm10.dll
msvcrt.dll
インポートを行うために使用しているコードは次のとおりです。
SetDllDirectory(L"c:\\dlls");
HMODULE tempDLL = LoadLibrary(L"mydll.dll");
DWORD err = GetLastError();
これをデバッグする方法についてのヒントを教えてください。
編集:答えてくれたみんなに感謝します。これが私がこれまでに発見したことです:
a)アプリケーションツールキットパッケージはそれほど有用であることが証明されていません(以下を参照)
b)同僚Aは、勝利時にdllをロードできます7 マシンと同僚 B はできないので、散発的なものです
c) 管理者として実行しても何も変わりませんでした