目前OLED_V2自动化测试中遇到的问题记录如下:
1.C++中常用指针做字符串变量,因为C++的指针有地址主动越界的特性,通常对于路径这一类的小内存字符串不去分配内存(当然,这是不合理的,坏习惯)。
在VB调C++的dll时,这个问题就会暴露出来,所以最好是以数组作为VB工程和dll间传参的接口。
2.这个问题比较奇怪,如果有朋友能解释的麻烦说明一下,感谢。
dll本身设置成c++的通用dll,使用Unicode字符。
VB工程源码虽然没细看(第三方的工程),但是应该也是Unicode字符。
在传字符串给我时,开始发现dll只能获取到路径字符串第一个字母,后面的都没有显示,后来发现VB默认的是宽字符,dll则是窄字符。
将VB的字符串按奇数跳着取合并后传给dll,dll则能正常完整显示。
虽然看结果可以分析出原因(VB默认的是宽字符,dll则是窄字符),但是我想这里面肯定有办法通过工程设置(VS软件)来解决的,如果有懂的还希望能解释下,
或者告诉我其他的解决方案,十分感谢。