vb调用c++ dll中注意的问题

目前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软件)来解决的,如果有懂的还希望能解释下,
或者告诉我其他的解决方案,十分感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值