今天主要调了CFile中Open,Read,Write等函数

来源:互联网 发布:中国软件100强 编辑:程序博客网 时间:2024/06/14 10:38

今天还是跟以前一样主要调了一下socket,这此不一样的是除了有用户名和密码的认证之外,还有建了一个文件,并且把文件中的内容传递到另外的一个地方(比如从c盘传递到d盘)。主要运用了CFile open read write等函数。虽然说起来简简单单,但是自己调起来还是很费劲的。

自己主要犯得错误有:

1.自己在写文件名的绝对路径的时候比如“D://test.txt”,我缺把那个冒号“:”写成了分号“;”这个失误用肉眼很难辨别,在常sir的帮助下,运用CFile::Open函数里面的,打开失误时的异常指针

在没有打开的时候Open函数会返回0,这时候用pError的ReportError。找到自己哪里出的错。幸亏是有这个啊,要不然自己找错误都崩溃了。

 

2.自己在open的时候比如第一次用那个modeCreate,第二次要是打开的时候还用这个会把原来自己保存的给覆盖掉,十分郁闷,这个粗心的错误,让我找了好久才知道为啥我用f.Read函数读取数据的时候总是0个数据。

关于这个modeCreate,就是在没有这个文件的时候创建,如果已经有了就覆盖,相当于把原来的给删掉

modeNoTruncate,是如果没有这个文件,就创建这个文件,要是有的话,直接打开,然后再用

modeReadWrite意思是打开文件之后可以写和读。

modeRead意思是打开文件之后只能读出数据,不能写入

modeWrite意思是打开文件之后只能写入数据,不能读出

 

3.自己用那个socket传送数据的时候在那个send函数和recv函数中的关于长度的参数(即第三个),不能用strlen(),因为strlen函数的工作机制就是在结尾处那个"/0”为标志的,但是呢,没有包含那个0,因此如果用那个strlen作为长度,只能是在接受的数据中没有结束符。显示的时候会出现一长串的“烫烫烫”

 

4.打开的文件用完之后,记得用f.close()关闭文件。

 

5.在用于验证的时候的代码,用这种格式,用户名长度+用户名+密码长度+密码,客户端发送的时候这样发送,而服务器接受的时候就要注意了:对于用户名和密码要多分配一个空间,多的那个空间是要在结尾处附上一个0

 要是没有那个结束的0的话会很麻烦的。

6.关于处理那个mfc90d.dll的解决方法,这个问题是由于硬盘是FAT32这种类型,而导致的,换成NFST之后就没事了。主要的解决方法是:在项目的属性|配置属性|清单工具|常规(Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library)”中的使用FAT32解决办法选择(默认为),重新生成项目即可解决问题。该方法是唯一真正针对问题所在而提出的解决方法,使清单工具可以正确更新。(此方法是官方解决方法,也比较方便,推荐)。

——————————————————————————————————————————————

今天还看了一集《灌篮高手》第三集,这一集樱木和大猩猩比球。有一点我有感触:赤木晴子说篮球从小就是他哥哥的战场。我感觉任何人都认认真真的干一件事。都会很了不起的。即使是想樱木起初是个菜鸟,但丝毫不影响他成功。

原创粉丝点击