【VS编译器】VS编译器常见错误和经验记录
让VS调试器正确显示UTF-8字符串
默认的, VC调试器只能正常显示ANSI字符串及UNICODE字符串, 而UTF-8字符串及其他格式则无法显示
这里无需编写插件及修改配置文件,只需要将要显示的字符串拉到Watch中,并在变量后面添加,s8即可显示
同样类型的功能也应该很熟悉
,数字 将变量拆分为数组显示, 数字是要显示多少位, 此法对const char*这类原始字符串非常有用
,x 16进制查看
,hr 查看Windows HRESULT解释
,wm Windows消息,例如0x0010, wm 显示 WM_CLOSE
常见错误
error C1083:
一、
…… fatal error C1083: 无法打开预编译头文件:“Debug\lean.pch”: No such file or directory
方法1,rebuild all
方法2,项目-〉属性-〉C/C++ -〉预编译头,修改 创建/使用预编译头 为 创建预编译头。
VC.net中:修改:项目->属性->C/C++ ->预编译头->不使用预编译头
2012.8.20
关于预编译头文件:http://blog.sina.com.cn/s/blog_4ac766c00100qsbd.html
二、
1>C:\Program Files\Windows CE Tools\wce600\Mini2440-CE6-SDK\include\ARMV4I\shlobj.h(120) : fatal error C1083: Cannot open include file: 'winnetwk.h': No such file or directory
SDK包里制作的不完善,会差东西。
到目录D:\WINCE600\PUBLIC\COMMON\SDK\INC下面找到该文件,可以自己添加进要定制的SDK!
http://www.arm9home.net/read.php?tid-4352-fpage-0-toread--page-1.html
error C3861:
常用的函数竟然出错,提示找不到标志:
1>c:\wince600\osdesigns\lean\lean\leandlg.cpp(174) : error C3861: “cos”: 找不到标识符
1>c:\wince600\osdesigns\lean\lean\leandlg.cpp(174) : error C3861: “sin”: 找不到标识符
没有包含相应的头文件#include "math.h"
2012.8.22
……处未处理的异常,读取0x??位置时发生访问冲突
void CSettingDlg::OnPaint()
{
……
GetDlgItem(IDC_SMPLE)->GetClientRect(&rect);
GetDlgItem(IDD_DLG_SETTING)->GetWindowRect(&rect);
……
}
GetWindowRect 为 CSettingDlg类的函数,无需前面的指针
改成:
void CSettingDlg::OnPaint()
{
……
GetDlgItem(IDC_SMPLE)->GetClientRect(&rect);
GetWindowRect(&rect);
……
}
error PRJ0004 :
win32平台中的程序转换为wince中的一些错误
>ToolBox : error PRJ0004 : 未能为“VCCLCompilerTool”工具生成命令行。
从原有的平台复制参数
应该是error PRJ0004 : Could not generate command line for the ‘VCCLCompilerTool’ tool
Try Project Settings->C/C++->General->Debug Information Format = 4, change it to /Zi
(项目->属性->C/C++->调试信息格式->改成 程序数据库(/Zi))
This happens after project conversion from older version of VS compiler.
Error 1 fatal error C1189:
#error : ERROR: Use of C runtime library internal header file.
\Microsoft Visual Studio 8\VC\ce\include\crtdefs.h 100
把PC上的代码移植到WINCE上,打开解决方案后修改了项目属性,将目标平台设置为wince的。
build的时候就出现了上面的问题该怎么解决?
这个可能和你的编译器路径设置有关,具体可以参考CSDN上的两个帖子:
1. http://topic.csdn.net/u/20100826/08/2efa9000-2d32-45c3-a7aa-1f8b6231f549.html
2. http://topic.csdn.net/u/20070205/19/b4f2a487-7ba1-4b05-a6ce-ba1026548995.html
PC的应用程序移植到CE设备上,会出现某些函数CE平台不支持的问题,这个就需要具体问题具体分析了。
(#error 是预处理命令。表示程序如果编译到这里就是不对的,就会报错。对于楼主这种情况,这个#error是为了保证必须定义_CRTBLD或者_WIN32_WCE这两个宏。http://topic.csdn.net/u/20080416/12/a482ff83-6c9c-4c2b-9031-11606d4b43f1.html
#if !defined(_CRTBLD) && !defined(_WIN32_WCE)
#error ERROR: Use of C runtime library internal header file.
)
error C2065:
error C2065: '' 'IDD_CRANETOWER2_DIALOG' '' : undeclared identifier
开发平台:VC/VS2005/VS2008/VS2010
出现错误:error C2065: ''IDD_CRANETOWER2_DIALOG'' : undeclared identifier,IDD_CRANETOWER2_DIALOG为对话框ID号。
错误原因:没有包含Resource.h头文件
解决办法:在该源文件的顶部添加:#include "Resource.h"。(注意: #include "Resource.h" 一定要包含在 该源文件的头文件前面)
vs 2005/2008/2010 资源在另一个编辑器中打开 错误 2012.9.3
菜单栏:窗口->关闭所有文档 然后重新在资源管理器打开