1.error C2512: 'CMyClass' : no appropriatedefault constructor available
VC需要默认构造函数(显性),而JAVA不用。
2. 增加_s后缀的函数
a.1) sprintf
int sprintf(
char *buffer,
const char *format [,
argument] ...
);
a.2) sprintf_s
int sprintf_s(
char *buffer,
size_t sizeOfBuffer,
const char *format [,
argument] ...
);
b.1) strcpy
char *strcpy(
char *strDestination,
const char *strSource
);
b.2) strcpy_s
errno_t strcpy_s(
char *strDestination,
size_t sizeInBytes,
const char *strSource
);
3.Run-Time Check Failure #3 - The variable 'comstat' is being usedwithout being initialized.
VC6以后版本的增强功能。
解决办法:
增加memset(&comstat, 0, sizeof(COMSTAT) );既可。
下列两种方法未试!
方案1: 改变项目配置属性
一种解决方案是改变基本运行时检查(changing the runtimechecks in project settings):在菜单Project->Project properties-> C/C++ -> Code generation-> BasicRuntime checks --> change to 'Default',在中文版中是:项目-〉属性-〉配置属性-〉C/C++代码生成-〉基本运行时检查-〉设置为默认,当将基本运行时检查改为默认之 后,编译自然顺利通过了,向串口调试助手发送消息正常了,再从串口调试助手向SerialPortTest发送消息时,也正常了。
方案2:改变comstat变量属性
另一种解决方案是将CSerialPort.CPP中的COMSTAT comstat;改为static COMSTAT comstat;这样改了之后,debug顺利通过,然后调试,与串口调试助手相互发消息都OK了。为什么这样就能解决呢?其实当你使用debug解决方 案时,它的基本运行时检查初始设置为:两者(/RTC1,等同于 /RTCsu),这个两者是指:堆栈帧(/RTCs),未初始化的变量(/RTCu)。由于它要检查未初始化的变量,所以将SerialPort.cpp 中的COMSTAT comstat;改为static
COMSTAT comstat;就可以正常使用CSerialPort类了。
以上是在debug下的解决方案,当在Release编译状态时,你会发现并不需要将COMSTAT comstat;改为static COMSTAT comstat;就能编译成功并且发送接收消息正常。其实,在Release下,它的基本运行时检查初始设置已为默认。这应该也算是第一种解决方案之内。
而当你将它设置为两者(/RTC1,等同于 /RTCsu)时,不论是否将COMSTAT comstat;改为static COMSTAT comstat;,编译都不能通过,报错““cl.exe”返回的结果有误。",这个应该是属于Release的问题了,另当别论了。
分享到:
相关推荐
由VC6.0开发的工程项目,移植到VS2010环境下,会出现各种错误和警告,此类错误多数是由编译器和环境不兼容导致,除修改工程下的某些属性参数外,还需手动修改编译过程中出现的一些错误。
130个加密解密的源码,基于VC的工程,有VS2005版本和VC6版本的,可以参考下里面的函数实现
一款使用VC6.0或VS2005-2012开发必备的工具Visual assist x(破解版)。永久破解。不反弹,哈哈。本人就是使用这个
本文档主要是给出了工程在迁移过程中由于开发环境不同所导致的的一些错误,并给出解决方案
VC6从入门到精通-基础篇(WDL格试).rar VC6从入门到精通-基础篇(WDL格试).rar
VC6从入门到精通-开发者眼中的VC
VC6从入门到精通-VC与数据库管理
vc2008到vc2017, vc9到vc15, 32位和64位全有, vc13(2014) 没有找到, vc库打包下载!!!
VC6从入门到精通-基础篇,原版通用教材。
首先说一下版本对照:Visual c++ 6.0(单独的C++编译器),VC----7.0(微软第一次把VC嵌入到Visual Studio .net),VC2003----VC7.1,VC2005----VC8.0,VC2008----9.0,因为.net框架是基于项目的,所以C++程序在VC...
vc运行时库(2005、2008、2010,含x86、x64)
VC6从入门到精通-VC与数据库管理 里面有一些关于VC和数据库的知识
图像匹配 opencv-2.4.13.6-vc14.exe和opencv-4.1.0-vc14_vc15.exe
opencv-3.4.0-vc14_vc15---.rar
解决所有装系统软件时遇到的缺少vc运行库2005-2010的问题,
vc2008到vc2017, vc9到vc15, 32位和64位全有, vc13(2014) 没有找到, vc库百度网盘打包下载!!!
VC 6.0里面的工程打包转入VS 2015的方法,转2017同样有效
php-5.3.5-Win32-VC6-x86.zip是官方提供的PHP-5.3最后一个x86-vc6-ts的版本