日记:VB调用C++ DLL注意事项

1. DLL的接口必须在.def中声明,否则VB无法调用。根据已有资料,.def文件完成的作用是与extern "C"相同,也就是说如果在接口定义的头文件中使用了extern "C",则不需要在.def中声明。在实际中,供C++、C#和Java调用的DLL都只需要使用extern "C"来声明接口即可,VB应属一个特例,具体原因尚不清楚。

2. VB声明原型时,对值类型参数时,传入参数需用ByVal修饰,传出参数需用ByRef修饰;但对于字符串参数,均用ByVal修饰符。

3. VB中的Integer为16位,因此对于C++中的int参数,VB声明原型时,C++的int型必须声明为Long类型。

4. 对于传出的字符串参数,VB在调用接口前,应先为字符串分配缓存,方式如:Dim szWarrantCode As String * 50;这里50为缓存大小。

posted @ 2010-11-16 22:30  泉子  阅读(2406)  评论(0编辑  收藏  举报