1

我有一些来自 MSDN 的示例代码,我正试图对其进行调整以供使用,但 VBA 编译器拒绝尖括号的内容< >。我在模块中有以下代码:

Imports System

Imports System.Runtime.InteropServices


<DllImport("../../insert_dll_name_here.dll", CallingConvention:=CallingConvention.Cdecl)> _
Public Function Test(file() As String) As Integer
End Function

我正在尝试使用此代码从 C++ dll 调用一个简单的函数,该函数需要一个字符串数组,但我收到编译错误“预期的行号或标签或语句或语句结尾”并且找不到提供的帮助菜单有什么用。我试过方括号[ ],以防这是 ​​VBA 版本的问题,但无济于事。有人可以指出我在使用 COM 互操作服务时的错误。

4

1 回答 1

1

代码是 VB.NET。这不是 VBA。

在 VBA 中你会写,

Declare Function Test Lib "../../insert_dll_name_here.dll" (file() As String) As Long

但是,VBA 不直接支持该cdecl约定,但您可以使其与类型库一起使用。您可能还会遇到file() As String数组问题 - 确保在 C++ 端正确处理它。

附带说明一下,这与 COM 无关。这是从外部库调用函数。

于 2013-05-20T11:28:27.400 回答