64-битная DLL работает в VB.net, но не в VBA - PullRequest
1 голос
/ 12 декабря 2011

У меня есть 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 голосов
/ 12 декабря 2011

Int32 и IntPtr не являются допустимыми типами данных VBA. Вам нужно будет переписать функцию, конвертирующую тип Int32 в Long и тип IntPtr в Integer.

...