0

我有一个 C++ 函数:

MYDLL_API int scanfile(HANDLE handle, const char *filename, const char **virname){
*virname="virusA";
}

我相信参数 **virname 是一个指向指针的指针。现在我在 VB.NET 中声明了函数,它将调用这个函数,期望 C++ 函数修改 virname。

DllImport("mydll.dll", CallingConvention:=CallingConvention.Cdecl)> _
    Public Shared Function scanfile(ByVal handle As Integer, ByVal strpath As String, ByRef virname2 As String) As Integer
    End Function

我是否错误地调用了 DLL?

4

1 回答 1

0

看起来 'virname' 是一个 C 字符串数组(*virname = "virusA" 只是设置第一个字符串 - 它等效于 virname[0] = "virusA"),因此您应该对最后一个参数使用以下内容:

ByVal virname() As String
于 2013-06-21T02:47:42.780 回答