vc编译的一个问题

初学c++以下代码我是照书上抄的~~~有几个问题!
///////////////////////////////////////////////////////////////////////

#include <windows.h>
#include <stdio.h>
int WinMai(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
//定义一个字符串
LPSTR szString="windows data type ,string";
//定义一个数组,要大于szString
CHAR lpString[120];
//定义dword数据类型
DWORD dwMax=0xFFFFFFFF;
DWORD dwOne=0x1;
//定义int数据类型
INT iMax=0xFFFFFFFF;
INT iOne=0x1;
//显示字符串
MessageBox(NULL,szString,"LPSTR",MB_OK);
//复制内存,将字符串复制到数组中(包括NUll结束符)
CopyMemory(lpString,szString,lstrlen(szString)+1);
MessageBox(NULL,lpString,"CHAR",MB_OK);
//比较并显示结果
if(dwMax>dwOne)
{
MessageBox(NULL,"dword类型的数据0*FFFFFFFF>0*1","DWORD",MB_OK);
}
else
{
MessageBox(NULL,"dword类型的数据0*FFFFFFFF <0*1","INT",MB_OK);
}
return 0;
}
//////////////////////////////////////////////////////

第一个问题:winmai函数那里的定义有什么用啊?跟MSDN一个样的搬过来的....
第二个问题:0xFFFFFFFF我原来写0*FFF怎么报错咯~~写成小写字母X就不会报错- -!汗啊....
第三个问题:编译的时候unresolved external symbol _main
unresolved externals
我就是把 /subsystem:console
改成
/subsystem:windows
也是报错!!!!!
再说明下,我是在VC++6.0下建立一个控制台,然后写代码这样的!

WinMain是编写窗口应用程序的入口函数,由操作系统调用。在学习C语言main函数的时候,不是也可以写成这样么:int main(int argc,char* argv[]);不过一般我们写程序的时候都是不需要参数的,就简写成了void mian()了;
WinMain可以看成是mian的升级版,它不但包括了命令行参数,还指出了当前进程和先前进程的句柄。当然,这些不需要知道太多,只要明白必须写成这样就行。
0xFFFFF那个0后面不是乘号,而是一种说明,它说明你所表示数的是十六进制的。比如你写个121,如果你不写成0x121,别人怎么知道你是用十六进制表示的呢。
如果你在工程中使用了CRT函数,而这些函数又需要CRT启动代码,就会出现这种链接错误。默认情况下,Release配置的Preprocessor definitions中定义了_ATL_MIN_CRT,它将CRT启动代码从你的EXE或DLL剔出去了,你可以去除_ATL_MIN_CRT这个预处理符号就可以了,第三个问题参考http://dev.csdn.net/article/12/12676.shtm
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-07
第一个问题
Winmain 就是C语言的main 如果你不知道C语言的main的话 就不用问了
第二个问题
0XFFFFFFFF与0xFFFFFFFF等价
第三个问题
subsystem:必须为Windows 里面还有些别的编译选项 比如指定入口函数Winmain
第2个回答  2009-08-07
去csdn的社区注册一个问吧,那儿人多而且回答也快些。

http://community.csdn.net/
相似回答