竟然连编译或LINK出错行号都没无给用户显示出来,这一点还不如TC可以清楚地看到出错行号TMD不人性啊
还有一段简单的程序,出错硬是搜遍整个INTERNET都没解决
#include<windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
MessageBox(NULL,"Hello,World!","第一个Windows C程序",MB_OK|MB_ICONASTERISK);
return 0;
}
--------------------
编译能通过,可是LINK就出错
--------------------Configuration: app - Win32 Debug--------------------
Linking...
app.obj : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/app.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.app.exe - 1 error(s), 0 warning(s)
VC++的可视或环境简单是在像非人性的基础上设计的,也许是用习惯了DELPHI吧
还有一段简单的程序,出错硬是搜遍整个INTERNET都没解决
#include<windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
MessageBox(NULL,"Hello,World!","第一个Windows C程序",MB_OK|MB_ICONASTERISK);
return 0;
}
--------------------
编译能通过,可是LINK就出错
--------------------Configuration: app - Win32 Debug--------------------
Linking...
app.obj : error LNK2001: unresolved external symbol __imp__MessageBoxA@16
LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/app.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.app.exe - 1 error(s), 0 warning(s)
VC++的可视或环境简单是在像非人性的基础上设计的,也许是用习惯了DELPHI吧
我只想写一个"世界你好"的程序,一代只有4行,调错了七个半小时,看看我的回复时间就知道了,再是按着教程的指导来做的,现在问题解决了,就想骂TMD.他的错误提示简单答非所问.根本扯不到一起去,调错就只能个猜TNND
说 vc 不如 tc 会被人骂sb的
你包含的头文件指出了MessageBox的原型(指明了MessageBox是一个函数,并且定义了函数的原型),所以compile可以通过,但是link时,链接器必须找到这个函数的实现。你可以通过三个方法使得你的程序可以link通过:
一:呵呵,你自己写一个MessageBox得实现
二:通过静态链接某个库,这个库有MessageBox的实现
三:动态从某个实现了MessageBox的动态库中获取MessageBox的地址link出错是不可能给出出错代码位置的,只有compile错误才能给出错误位置。
动态从user32.dll获取MessageBox的地址
或者链接 User32.lib 选择Win32控制台同样可以使用MessageBox函数的。