相同代码不同属性导致的问题

1.今天为新做的一个小工具增加一个绑定功能,由于之前已经有同事做过了,然后就直接把他代码发过来参考,然后悲剧从此开始了。

1.把相关代码写完之后,编译通过,但是初始化COM口失败(CoInitializeEx(0, COINIT_MULTITHREADED)的返回值是-2147417850),找了很多资料,自己鼓捣了下,发现这个返回值的意思是我在之前已经设置过COM,导致这次不能再设置,检查很久,把可疑代码全都屏蔽之后发现还是一样的问题。干脆去网上搜解决方式,原来将第二个参数改成COINIT_APARTMENTTHREADED就行了。当然,前提还是先看资料学习下COM组件的相关知识,能改再改。这个问题就这么搞定的(不过同事那个从没出现这种问题)。

注:我写的那个小工具(下面简称工具A)会先生成一个文件A,这个文件需要另一个工具(工具B)进行一些操作之后再生成另一个文件B,把文件B放到我的小工具下,我的工具才能运行起来。

2.此时一个问题摆在眼前,工具A生成的文件A去工具B中操作之后生成文件B,我在代码中将工具B中对文件的操作重新封装成一个接口(也是对原始文件进行相同操作,只是不保存成文件,以便跟工具B生成的文件中数据进行校验。),读取文件B的内容跟我自己代码中操作完文件A之后得到的数据总是不一样,用对比工具对比我的代码,对比之前同事的代码,对比那个工具的操作代码,都是完全一样的。就是得到的数据不一样。然后开始对我封装的那个操作文件接口跟工具B的操作文件代码进行跟踪(对同一个文件操作),发现就算是相同文件,读取从文件读取的数据也不一样(还没对文件操作,只是先读文件数据),一模一样的文件,一模一样的代码,读取的数据却不一样,感觉很不可思议,这会网上搜资料的心情也没了,就坚持一定要找出问题所在来,从项目属性开始,对比同事的那个项目,突然虽然有些不同,不过都没改,把他里面添加的动态库我也添加了,不过还是没效果。纠结的时候突然想起我应该看看我的原始文件保存是不是有问题,然后跟踪一下,发现要写进文件的数据很正常,写进文件之后,打开文件不正常,写进原始文件的数据每个之间都有一个空格,虽然长度是跟要写的数据一样长但是由于空格占了一半,写进文件的数据就是“X X X X”,这种类型,此时突然想起刚才对比项目属性时,貌似同事另外那个工具的属性中是使用了multi_Byte,而我的是unicode.改了之后,终于好了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值