我的程序很简单,用的是VC++6.0目的就是为了得到系统中的显卡数量,需要调用API,EnumDisplayDevices,(应该是用到user32.lib)编译通过,但到了链接就出现错误,
Linking...
monitorinfo.obj : error LNK2001: unresolved external symbol _xEnumDisplayDevices@16
起初我想#include <multimon.h>中声明了EnumDisplayDevice函数,所以可以编译通过,也许是user32.lib中没这个导出函数,我用dumpbin查看了user32.lib果然没有EnumDisplayDevicesuser导出,所以就看了看vs2005中的user32.lib,发现他有EnumDisplayDevicesuser导出,但是名字可能怪异一点,叫_EnumDisplayDevicesA@16,但是我还是把vs2005中的user32.lib,替换了VC6.0下的user32.lib,build时还是同样的错误,这是怎么回事呢?
Debug/MONITORINFO.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
MONITORINFO.exe - 2 error(s), 0 warning(s)
#include <Windows.h>
#include <Winuser.h>
#if _WIN32_WINNT >= 0x0500
#include <windef.h>
#else
#include <multimon.h>
#endif
int main(int argc ,char *argv[])
{
int i;
BOOL flag;
DISPLAY_DEVICE dd;
i = 0;
flag = true;
ZeroMemory(&dd, sizeof(dd));
dd.cb = sizeof(dd);
do
{
flag = EnumDisplayDevices(NULL, i, &dd, 0);
if (flag) i += 1;
} while (flag);
// m_monitorNum = i; //总数量
// GetMonitorInfo(HMONITOR hMonitor,LPMONITORINFO lpmi) ;
return 1;
}