4
我嘗試到c,通過以下結構++ DLL到C#:傳遞的char * []從C++ DLL結構到C#
struct name
{ char* myArray[3];
char firstname[100];
char lastname[100];
};
void Caller(struct name * demo)
{
strcpy(demo->firstname,"hello");
demo->myArray[0]="hello";
demo->myArray[1]="hello";
demo->myArray[2]="hello";
ping(demo); //call to c# function
}
下面是我的C#代碼:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct name
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)]
public string firstname;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)]
public string lastname;
//what should i marshal here for char* myArray[3];
} ;
static void Main(string[] args)
{
name myname = new name();
ping(ref myname);
}
public static void ping(int a,ref name myname)
{
Console.WriteLine(myname.firstname+"\n");
}
我我能夠從C++ dll導入姓氏和名字。
我應該怎麼做導入char指針數組形式的c + +?
關於C#marshing什麼? –
你有沒有試過公共字符串[] myArray; – Adil
是啊,試過了... ,但在以下行中輸入錯誤 IntPtr c = myname.myArray; –