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

C/C++ 同时被 2 个专栏收录
173 篇文章 1 订阅
7 篇文章 0 订阅

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

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值