Windows网络编程用VS2010调试时出现的问题及解决方案
来源:互联网 发布:广州优化公司 编辑:程序博客网 时间:2024/05/16 23:33
我们在学习Windows网络编程的时候,老师要求在Visual Studio 2010里创建一个聊天项目,小组分工编程时,我遇到的是以下的问题:
问题1::TalkClient.obj : error LNK2019: 无法解析的外部符号 "void __cdecl defProc(void)" (?defProc@@YAXXZ),该符号在函数 "void __cdecl procMenu(void)" (?procMenu@@YAXXZ) 中被引用
原因:只声明了defProc(),没有对该函数进行定义,其实是我在函数定义时,将该函数的函数名打错了。
解决方案:只要对编写的函数定义以及声明。
问题2:明明代码没有错误,调试时却提示语法错误。
原因:原来是我将.cpp文件以偏概全地等同认为与.c文件是一样的,.c 是c语言的源程序,.cpp是c++语言的源程序,这是两种不同的语言,语法不同,c++兼容c语言的绝大部分语法特性。同时,.c变量定义只能在开始,.cpp可以随时用随时定义,所以就出现在函数代码段中间部分定义的变量依旧提示未定义。
解决方案:在给文件命名的时候,将.c的扩展名转换成.cpp,即用c++编写程序。
问题3:error C4996: 'scanf': This function or variable may be unsafe. ......
原因:出现这样的警告,是因为VS2010之后的版本中认为CRT中的一组函数如果使用不当,可能会产生诸如内存泄露、缓冲区溢出、非法访问等安全问题。这些函数如:strcpy、strcat等。
解决方案:对于这些问题,VS2010建议使用这些函数的更高级的安全版本,即在这些函数名后面加了一个_s的函数。这些安全版本函数使用起来更有效,也便于识别,如:strcpy_s,calloc_s等。
当然,如果执意使用老版本、非安全版本函数,可以使用_CRT_SECURE_NO_DEPRECATE标记来忽略这些警告问题。办法是在编译选项 C/C++ | Preprocessor | Preprocessor Definitions中,增加_CRT_SECURE_NO_DEPRECATE标记即可。
另外一种解决方法:
#pragma warning(disable:4996) //全部关掉
#pragma warning(once:4996) //仅显示一个
问题4:error C2051: case 表达式不是常量
解决方案:是switch…case用法的掌握不牢,case 后接常数表达式或者常数,而我把它后面赋值一个字符,将“T”改成’T’.
- Windows网络编程用VS2010调试时出现的问题及解决方案
- 初学windows网络编程,编程时易出现的问题。
- Java 用VS2010+MyEclipse调试jni出现的错误问题
- windows安装MySQL出现的问题及解决方案
- Windows编程出现的问题
- 用java网络编程中的TCP方式上传文本文件及出现的小问题
- 在java编程调试中出现的一些问题和解决方案
- 小米系列手机真机调试出现问题及解决方案
- 关于Eclipse调试Hadoop所出现的一些问题及解决方案
- 从linux下的mongo恢复数据到windows下的mongo库时出现的问题及解决方案
- Windows网络编程的一个调试心得
- 关于VS2010调试时出现的找不到可执行文件问题的可能的解决办法
- double 类型运算时出现的问题及解决方案
- Ubuntu12.04操作系统安装时,出现的问题及解决方案
- 浅谈opencv2.4.10配置时出现的问题及解决方案:
- ios9中出现的问题及解决方案
- studio中出现的问题及解决方案
- 使用 linux 出现的问题及解决方案
- AsyncTask源码分析及实现网络图片的下载
- 使用SlidingMenu的属性设置和我的小问题
- spring mvc json数据交互
- ckeditor_4.5.10插件
- ssh-keygen删除旧密钥
- Windows网络编程用VS2010调试时出现的问题及解决方案
- Revit开发之选择链接模型中的构件
- jbpm学习(二)
- buildroot学习(十一)——at91sam9g45软件平台更新
- 机房收费系统小错误
- HDU 3068 最长回文 [Manacher回文串]
- java学习日记_27:面向对象之main方法格式详细解释
- 简易购物车的实现
- JS