第一个>程序

来源:互联网 发布:mac里的影片怎么删除 编辑:程序博客网 时间:2024/05/21 06:57

今天晚上真是郁闷啊 在编写<<VC++深入详解>>的第一个windows程序时就遇上了N多麻烦  一开始编译的时候就发现了30多个错误 晕啊 好歹原来也写过类似的例子啊 怎么会错这么多啊~~~~~~~

在接近一个小时候 我终于成功搞定全部error

首先我发现我的文件后缀名是.c(因为之前一直是看windows程序那本书,而那本书用的是标C语言) 我试了试改成.cpp,谁知道马上变成10

+的error 汗一个啊

然后我看看了剩下的error 都是类似  error C2664 “MessageBoxW”: 不能将参数 2 从“const char [18]”转换为“LPCWSTR”的错误 百度了一下 发现时字符的问题 汗啊 貌似<<windows程序设计>>的第二章就讲了这个问题,于是立马全部加上了TEXT("............"),但是后来看到网上的解决办法是直接加个L ,例L"............" 竟然效果是一样的 但是为什么L==TEXT()呢 (难道是C++特有的类似强制转换的东东? 反正我在定义里找不到) 文档里也没有(TMD 文档是英文的 好鬼难看) ---------因为笔者是用VC6.0 而我用的是VC2008 在08中对字符有强制限定

 

TextOut(hDC,0,0,L"http://wjff10@163.com", strlen("http://wjff10@163.com"));

在上面这个例子中 发现strlen后面的东东不用加L 为啥呢 难道是因为只是取大写吗 反正我加了就编译错

 

最后一个是最无语的......

在我ctrl+F5成功编译之后 程序竟然没有弹出来.....

再按一次 输出哪里竟然变成了空白 难道我的程序把VC给弄死了吗,想了很久之后 我跑到任务管理器那里 发现了好多我刚编写的那个程序.......它竟然运行了 但是没有显示出来 于是赶快回去检查代码发现少了

 

wndcls.hInstance = hInstance;

在两本书中对这个代码都没有过多的表述 只是说是定义实例句柄的  在WinMain中有用到 至于为什么会出现这种情况 目前自己还不是很清楚