VB调用c++写的Dll的一点总结

最近,写了一个VB应用程序,这个APP主要是用来演示三个C++写的视频处理动态链接库的使用方式。第一次写VB的代码,确实遇到了很多问题,现在回想一下,真的是很多东西走了或多或少的弯路,现在把这些东西总结并记录下来,期望以后写兼容VB的动态库,可以注意接口的定义,并不是所有的接口定义方式,都方便VB使用,再者,就是在VB中使用的一些知识积累。

C++写的DLL接口定义需注意的事项

1.       接口中自定义数据类型不能ByVal传递

这次就遇到了这个问题,而且花了很长的时间去验证这个问题,在Dll中有一个函数,如下:

Struct Color

{

Long lBrightness;

Long lcontrast;

Long lhue;

Long lsaturation;

}Color;

BOOL SetColorColor stuColor;

VB下需调用此函数,则定义相应的自定义数据和函数:

Type Color

lBrightness  As Long

lcontrast  As Long

lhue  As Long

lsaturation  As Long

End Type

Declare Function SetColor lib”A.dll”(ByVal StuColor As Color)As Long

这样看似可以将自定义数据结构中的四个变量都传送下去,但是这在编译时是通过不了的。

最初的时候是期望不用修改dll的接口,只是变换VB的代码将结构中四个数据都传送下去,试了以下方式:

a.       采用ByRef

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值