我用编辑器编辑的一段代码,文件名3.h
#include <windows.h>
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpStr,int nCmdShow)
{
MessageBox(NULL,"OK","information",MB_OK);
return(0);
}
为什么用cl 3.h,产生如下错误:
I:\3>cl 3.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.3.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved./out:3.exe
3.obj
3.obj : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
3.exe : fatal error LNK1120: 1 unresolved externals帮忙解释一下!谢谢!

解决方案 »

  1.   


      编译没有加入所需要的库, 你可以看一下一个正常的 win32 程序需要加入那些库. 这是摘抄:kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib   加入连接库设置在: Project -> Setting -> Line
      

  2.   


      编译没有加入所需要的库, 你可以看一下一个正常的 win32 程序需要加入那些库. 这是摘抄:kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib   加入连接库设置在: Project -> Setting -> Line
      

  3.   

    果然是没有加载所需库,不过我又有一个问题,cl编译出来的是obj文件,还是exe文件,为什么我两种都见到过。
      

  4.   


      obj 是你一个程序中每一个 c, cpp 文件编译出来的结果, 所有 obj 连接到一起形成 exe 文件.