使用Windows函数SendMessage会导致与MSVC链接错误,但与MinGW无关

时间:2015-03-04 12:35:06

标签: c++ qt winapi visual-c++

我在我的一个函数中使用了Windows函数SendMessage。

如果我用MinGW编译,一切都很好。

如果我使用MSVC2013编译,我收到此链接错误

myClass.obj:-1: error: LNK2019: unresolved external symbol __imp__SendMessageW@16 referenced in function "private: virtual void __thiscall ...

为什么?

2 个答案:

答案 0 :(得分:4)

你可以这样做:

#ifdef _MSC_VER
 #pragma comment(lib, "user32.lib")
#endif

答案 1 :(得分:3)

默认情况下,Visual C ++仅在kernel32.dll中链接。

g ++还链接了许多其他DLL(Windows API子库)。具体取决于选项。

来自specs文件与MinGW g ++ 4.9.1的Nuwen发行版的相关行:

%{pg:-lgmon} %{pthread:-lpthread} %{!no-pthread: } %{mwindows:-lgdi32 -lcomdlg32} -ladvapi32 -lshell32 -luser32 -lkernel32