随笔 - 113  文章 - 0  评论 - 218  阅读 - 73万

VS2010 C++ 几个常见低级错误

好久没有用C++写程序了,为了忘切的记过,在此简单记记在程序调试过程一些小问题。

1、“=”: 无法从“const char [XX]”转换为“LPCWSTR”

如果程序在VC6.0调试没有问题,而到了VS却出现这个问题。

那么有两种解决办法:

1)、工程使用的字符集
在vs中做如下修改:
project->xxx property(左边树形的Configuration properties|General)-> 右边的(Character Set) 改为(Use Multi-Byte Character Set)

 2)、字符和字符串都要用wchar_t不能使用char,并且要使用L来定义字符串常量 

 VS默认使用的是Unicode,也就是所有的字符和字符串都要用wchar_t不能使用char,并且要使用L来定义字符串常量,比如:wchar_t wstr[] = L"宽字符";

在VC中最好使用_T()宏,和TCHAR,用它们可以在有Unicode和没有Unicode的程序中自动转换是否为宽字符

 

2、无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

这个问题表明你新建的是一个main类型函数(控制台程序),而你的程序中有窗口程序,显然是个win32函数,解决方法:
项目-属性-链接器-系统-子系统-把控制台该为windows
1)、 你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain.
2)、 你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。
 

posted on   陈国利  阅读(1996)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2012年2月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示