64位DLL在VB.net中工作,但在VBA中不起作用

时间:2011-12-12 14:49:33

标签: vb.net vba 32bit-64bit int32

我有一个64位的DLL,我想在VBA中使用它。 VB.net中的示例在VBA中不起作用,因为Int32不是已知的VBA数据类型。是否可以在VBA中使用它?如果是这样,我是否必须写自己的课程?我包括几行示例。谢谢。

Imports System
Imports System.Runtime.InteropServices

Friend Class LinkVCMOWRAP
    Declare Function wcmo_init Lib "vcmowr64.dll" ( _
        <MarshalAs(UnmanagedType.AnsiBStr), [In]()> ByRef WCMOarg_Handle As String, _
        <MarshalAs(UnmanagedType.AnsiBStr), [In]()> ByRef WCMOarg_User As String, _
        <Out()> ByRef IntPtr_DataOut As IntPtr, _
        <Out()> ByRef IntPtr_ErrOut As IntPtr) _
            As Int32 

1 个答案:

答案 0 :(得分:0)

Int32和IntPtr不是有效的VBA数据类型。您需要重写将Int32类型转换为Long并将IntPtr类型转换为Integer的函数。