重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创建结构体,用结构体传输数据:
10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有察哈尔右翼前免费网站建设让你可以放心的选择与我们合作。
Public Structure InValue
Public P As 类型
Public Q As 类型
'其他值定义
End Structure
Public Structure OutValue
Public A() As 类型
Public B As 类型
'其他值定义
End Structure
把Dll内的方法改为:
Public Function calculation(value As InValue) As OutValue
Dim [out] As New OutValue
'处理函数
Return [out]
End Function
引用:
dim ffun as new pla.tua
dim inval as invalue
in.** = **
dim outp as outvalue = ffun.calculation(inval)
Private Declare function x Lib "dlltest.dll" (ByVal a As long, byval b as long) as long
DLL是不是你自己在创建,如果不是下面的格式就没有办法调用了(需要生成的是ActiveX 控件)
extern "C" _declspec(dllexport) int _stdcall treble(int* x,int len)
{
for(int i=0;ilen;i++)
x[i]=i;
return 0;
}
如果DLL不是你写的,且你要调用的函数不是__stdcall声明,VB直接调用是会报错的
如果DLL是你写的,注意调用约定问题,并看以下代码
***************************************************
以下是DLL代码
.cpp里这么写
extern "C"__declspec(dllexport) void __stdcall HelloWorld()
{
MessageBox(NULL,"HelloWorld","HelloWorld",NULL);
}
.def里这么写
LIBRARY "XXXX"
EXPORTS
; 此处以下添加
HelloWorld@1
*************************************************
vb里这么写
Public Declare Sub HelloWorld Lib "XXXX.dll" ()
然后调用就可以了,上面是VB的代码,或许VB.net的也差不多