最近在学习网络编程,机子上只有VS 2010,而很多学习材料都是在VC 6.0环境下的。 经常是一个VC 6.0的工程要转换,但是往往转换后就会出现很多问题。
关于TCP、UDP通信程序的转换。拿TCP通信程序做例子:
下载下来的代码是在VC 6.0环境下一个工程环境下有两个工程,分别分Client 和Server,打开转换后成了下面的样子:
但是调试运行之后,可以在源文件的地方分别看到两个工程的文件目录如下:(左为Client工程,右为Server工程)
可以看到只有Client工程下面生成了Debug文件夹,里面可以找到Client.exe文件,而Server工程没有生成Debug文件夹,也就没有生成Server.exe。这个问题也是折腾了好久才发现,因为在看孙鑫详解VC ++视频14讲的时候也有这个程序,但是视频中的两个工程可以分别调试运行,但是当我运行转换后的工程的时候就只能执行一次,也就是说只能点一次调试运行,而无法选择工程。郁闷了好久。
从上面生成的文件 可以大概理解表面的原因就是只有一个可执行的文件Client.exe。
那么如何来解决这个问题呢?(个人解决方式,不清楚具体原因,但是可以执行出来代码结果了)
可以分别打开两个VS,分别建立这两个工程,然后先执行Server工程,再执行Client工程。
另一个问题是,在调试运行的时候VS 执行完闭就会直接退出,一闪而过。
解决方法是可以用Ctrl+F5组合键,这样即可实现与VC 6.0一样的执行效果。
当然以上的问题仅仅是在代码无错的情况下,由于编译环境的改变而出现的。如果是因为一些函数用法改变等而造成代码执行不了的情况,另当别论。