【发布时间】:2014-12-01 20:06:14
【问题描述】:
我有一个 C dll,我想在 vb6 中使用它,这里是 C 语法:
#ifndef _MSC_VER
typedef long long INT64T;
#else
typedef __int64 INT64T;
#endif
int Init(int opts, void *key, INT64T offs);
我已将其转换为 VB6:
Public Declare Function Init Lib "x.dll" (ByVal opts As Integer, ByVal key As Long, ByVal offs As Currency)
然后调用它:
Init 0, 0, 0
函数的某些部分被执行并且我得到了这个错误:
错误的 DLL 调用约定
请您告诉我有什么问题吗?该dll来自第三方dll,所以我对此一无所知,
【问题讨论】:
-
int = vb6 Long(32 位),short = 整数(16 位)。确保为 32 位操作系统目标编译,如果为 64 位编译,则指针大小为 64 位
-
VB6 无法编译为 64 位,因此如果 DLL 为 64 位,则无法从 VB6 中使用
-
我也不认为货币的东西会起作用......
标签: c++ visual-c++ dll vb6 call