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

摘要:
实际上,C++、C#和Java调用的DLL只需要使用外部“C”来声明接口。VB应该是一个特例。具体原因尚不清楚。

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为缓存大小。

免责声明:文章转载自《日记:VB调用C++ DLL注意事项》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JAVA连接Sql-Server教程Caused by: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "list")下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

50个c/c++源代码网站

C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。 1、http://snippets.dzone.com/tag/c/ –数以千计的有用的...

【C++】解决c++中cout输出中文乱码问题

问题:cout输出中文乱码。例如下面的代码输出会乱码。 cout << "成功!" << endl; 输出结果:  解决方案: 控制台还原旧版即可,打开程序->右键->属性->使用旧版控制台->重启程序->解决!...

C++---使用VS在C++编程中出现 fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?

啦啦啦,好久没写博客啦... 对于C++初学者来说适应一个新的编译器还是需要蛮长一段时间的,现在我就给你们说说标题所说的这个问题吧... 第一步:菜单--〉项目--〉设置,出现“项目设置”对话框,左边展开项目,在“源文件”中找到出错的文件。 第二步:在右边选择“C/C++”属性页,在Category(目录)下拉框中选择“Precompiled Header...

C/C++常用库及工具

值得学习的C语言开源项目 - 1. Webbench  Webbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接:http://...

动态链接库知识点总结之三(如何以显示的方式加载DLL)

总结一下如何显示加载方式加载DLL, 首先,我们新建一个win32项目,选择dll,空项目,再添加一个源文件,一个模块定义文件(.def),具体如下图。(详细方法已经在前两篇文章中讲述,如有不懂,打开链接查看) (1)新建项目,名称为:dll,添加一个源文件(.cpp),编代码,编译文件 。 (2)为项目添加一个模块定义文件(上一篇文章中详细介绍)(先...

Side by Side Assembly介绍--manifest文件的使用

什么是Side-by-Side Assembly? Side-by-Side Assembly(建称SxS)是微软在Visual Studio 2005(Windows 2000?)中引入的技术,用来解决Windows平台上的DLL Hell问题。DLL Hell的介绍可以看Wikipedia的文章。简单的说,DLL Hell窘境包括了Windows应用程...