使用包含常量大小数组的结构调用非托管函数

问题描述

我想从 Visual Basic 调用一个 DLL 函数

在 C 中,DLL 函数看起来像

typedef struct {
   int values[8];
   int etc;
} S;

int dllfunction(const S *s);

在Visual Basic中,我成功定义了如下函数

Friend Class MyDll
    Public Structure S
        Public Value1,Value2,Value3,Value4,Value5,Value6,Value7,Value8 As Integer
        Public Etc As Integer
    End Structure

    Friend Declare Auto Function dllfunction Lib "mydll.dll" (ByRef S As S) As Integer
End Class

然后可以使用

调用函数
Dim S as Dll.S
...   (Initialize S member variables)

Dll.dllfunction(S)

我希望,而不是为 int values[8] 显式定义八个变量,而是使用某种数组而不是匹配 C 数组布局,并且可以使用(或轻松地从/复制到)Visual Basic 数组。是否有任何语言结构允许这样做?

注意

Public Structure S
    Public Values as Integer(4)
    Public Etc As Integer
End Structure

语言不允许。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)