VC6里调用系统API广播消息,编译报错: error C2065: 'BroadcastSystemMessage' : undeclared identifier! 但是在VS08下编译一切正常.
在winuser.h 里面添加调试宏(#error test),发现 __WIN32_WINNT 宏没有定义, 看来VC6太out了,系统API都不支持了,解决方案在windows.h前强制添加_WIN32_WINNT宏定义
#define _WIN32_WINNT 0x0500 // 强制性定义_WIN32_WINNT宏 #include <windows.h> #include <stdio.h> int main(int argc,char **argv) { DWORD bsm=BSM_APPLICATIONS; // 向所有进程广播通知消息 BroadcastSystemMessage(BSF_POSTMESSAGE,&bsm,WM_NOTIFYFORMAT,NULL,NULL); getchar(); return 0; }
再编译,继续报错: error LNK2001: unresolved external symbol __imp__BroadcastSystemMessageW@20
debug/xm.exe : fatal error LNK1120: 1 unresolved externals , 无法链接该方法, 在工程属性添加user32.lib即可