Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized
2012-04-13 12:27
489 查看
方案1: 改变项目配置属性
一种解决方案是改变基本运行时检查(changing the runtime checks in project settings):在菜单Project->Project properties-> C/C++ -> Code generation-> Basic Runtime 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的问题了,另当别论了。
方案3:
添加代码:memset(&comstat, 0, sizeof(COMSTAT)); //VC6不用这句也可以用,2008就要加
一种解决方案是改变基本运行时检查(changing the runtime checks in project settings):在菜单Project->Project properties-> C/C++ -> Code generation-> Basic Runtime 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的问题了,另当别论了。
方案3:
添加代码:memset(&comstat, 0, sizeof(COMSTAT)); //VC6不用这句也可以用,2008就要加
相关文章推荐
- Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized
- VS2010下使用SerialPort类出现The variable 'comstat' is being used without being initialized
- Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized
- 对Run-Time Check Failure #3 - The variable 'a' is being used without being initialized.的处理以及理解
- Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized .
- Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized
- 对Run-Time Check Failure #3 - The variable 'a' is being used without being initialized.的处理以及理解
- Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized
- Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized
- the variable 'low' is being used without being initialized
- Run-Time Check Failure #3 - The variable 'side' is being used without being defined.
- Run_time CHeck Failure---THe variable ‘src-Img’ is being used without being initialized
- The variable 'str' is being used without being defined 问题
- VC SerialPort串口调试,报错: SerialPort comstat is being used without defining
- Error 3724:Cannot drop the table 'object_name' because it is being used for replication.
- Run-Time Check Failure #2 - Stack around the variable 'var' was corrupted
- Run-Time Check Failure #2 - Stack around the variable 'var' was corrupted
- 编译错误“The run destination My Mac 64-bit is not valid for Running the scheme '***',解决办法
- 183 Examine the following command that is used to duplicate a database on the same host: RMAN> RUN {
- Run-Time Check Failure #2 - Stack around the variable 'var' was corrupted