のVisual Studio 2017(新鮮install-コマンドライン版)がエラーを与える:コンパイラリンカ外部シンボルMhook_SetHook
LNK2019: LNK2019 wmain関数で参照未解決の外部シンボルMhook_SetHook:
wmain関数で参照未解決の外部シンボルMhook_UnHookをコマンドコンパイル:CL/Y-/EHsc/DUNICODE mhook-TEST.CPP gdi32.lib user32.lib
を、私は、これはC/C++重複が整理に関連するかもしれないと思ったので、次のように、私はmhook.hを変更:
#ifdef __cplusplus
extern "C" {
#endif
BOOL Mhook_SetHook(PVOID *ppSystemFunction, PVOID pHookFunction);
BOOL Mhook_Unhook(PVOID *ppHookedFunction);
#ifdef __cplusplus
} // extern "C"
#endif
これは結果に大きな違いはありません。
なぜリンカーに問題があるのか分かりません。
mhook-test.cppにはmhookライブラリが付属しています。
[定義されていない参照/未解決の外部シンボルエラーとは何か、どうすれば修正できますか?](https://stackoverflow.com/questions/12573816/what-is-an-undefined -reference-unresolved-external-symbol-error-and-do-do-i-fix) – user0042
C++名前のマングリングについて調べます。そのライブラリがC++コンパイラを使用してコンパイルされている場合、 'extern" C "'はここで間違っているかもしれません。 – user0042
あなたの.hファイルは基本的に "Mhook_SetHookという名前の関数がありますが、他のどこかで定義されています"と言っています。あなたはリンカに「どこか別の場所」を提供しませんでした。 gdi32.libとuser32.libはリンクしていますが、mhook.libはリンクしていません。もちろん、リンカーはそれを見つけることができません。 –