我用VS2005学习写程序,其中有一个API的程序代码如下:
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
BOOL CALLBACK DialogProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) 
{   

case WM_INITDIALOG: 
{
InitCommonControls();
}
break; case WM_CLOSE:
{
EndDialog(hWnd,0); 
}
break;
}
return 0;
}int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
HINSTANCE hInst=hInstance;
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DialogProc,0);
return 0;
}
可是我建项目的时候,无论是空项目,还是win 32项目, 编译器都提示error LNK2019: 无法解析的外部符号 __imp__InitCommonControls@0,该符号在函数 "int __stdcall DialogProc(struct HWND__ *,unsigned int,unsigned int,long)" (?DialogProc@@YGHPAUHWND__@@IIJ@Z) 中被引用
请问应该建个什么项目才能正常使用呢?

解决方案 »

  1.   

    Requirements  
     Commctrl.lib 
    建win32的
    然后把 Commctrl.lib link到你的工程里,在project setting里面设一下
      

  2.   

    还是不行啊
    LINK : fatal error LNK1104: 无法打开文件“Commctrl.lib”
    能说的具体点吗?
      

  3.   

    放到project ->setting ->link->input->object/library module下面
      

  4.   

    还在报错
    LINK : fatal error LNK1104: 无法打开文件“Commctrl.lib”
      

  5.   

    是不是路径不对,看一下你的路径配置的不正确,俺也没用过2005
    lib库的路径配置
      

  6.   

    呵呵 ,好了,是添加了comctl32.lib
    谢谢