2015-02-06 202 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);