2015-02-06 201 views
-1

C++函数如何从C#中的指针struct param调用C++函数?在 “C++。DLL” 定义

FunctionName int GetDevice(VB_Device_Info* params){ do something...} 

typedef struct 
{ 
    char Name[10]; 
    int nPort; 
}VB_Device_Info; 

我试图调用此函数并在VB

Public Structure VB_Struc 
    Public Name As String 
    Public nPort As Integer 
End Structure 
<DllImport("c++.dll")> 
Public Shared Function FunctionName(<[In](), Out()> ByVal StructArray() As VB_Struct) As Integer 
End Function 

工作以及我如何定义这个C++函数的C#?

+0

你试过了什么? – user1810087 2015-02-06 14:01:38

+0

@ user1810087 'Dim DeviceInfo(10)As VB_Struc' 'FunctionName(DeviceInfo)'' – 2015-02-06 14:06:01

回答

0

你能试试吗?

[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] struct VB_Device_Info{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=10)] public String Name; int nPort; } [DllImport("c++.dll"] static extern int GetDevice(ref VB_Device_Info);