【VS编译器】VS编译器常见错误和经验记录

让VS调试器正确显示UTF-8字符串

默认的, VC调试器只能正常显示ANSI字符串及UNICODE字符串, 而UTF-8字符串及其他格式则无法显示

这里无需编写插件及修改配置文件,只需要将要显示的字符串拉到Watch中,并在变量后面添加,s8即可显示

image --> image

同样类型的功能也应该很熟悉

,数字  将变量拆分为数组显示, 数字是要显示多少位, 此法对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??位置时发生访问冲突

【VS编译器】VS编译器常见错误

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平台不支持的问题,这个就需要具体问题具体分析了。

http://social.msdn.microsoft.com/Forums/zh-CN/windowsembeddedcezhchs/thread/8305924b-69aa-4899-999a-136a379d5028

#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

 

菜单栏:窗口->关闭所有文档  然后重新在资源管理器打开

 

posted on 2022-10-04 01:30  bdy  阅读(334)  评论(0编辑  收藏  举报

导航