VBA声明包含VARIANT类型到64位DLL的函数

时间:2013-08-15 15:45:38

标签: c++ vba dll 64-bit

我在C ++中有一个函数

extern "C"
{
    VARIANT __stdcall foo(const VARIANT FAR& p1, const VARIANT FAR& p2)
    {
        ...
    }
}

使用指定入口点和序数的bar.dll文件编译为.def。 (是的,很老式,我知道FAR现在已经过时了。

它的主要用途是在Excel中,我想将dll移植到x64,所以我可以使用64位Excel。在VBA中,我定义了

Public Declare PtrSafe Function foo Lib "bar.dll" (Optional ByRef p1 As Variant, Optional ByRef p2 As Variant) As Variant

这个(没有PtrSafe)工作在32位,是我现在拥有的。但是在x64中,当我到达C ++函数时,p1p2没有可读的内存。

要么我遗失了某些东西,要么就不再支持了。有人可以帮忙吗?

0 个答案:

没有答案