[英]How to pass C# string[] to C char** or char[][]
在 C/C++ 中我有
typedef char TDAStringType[256];
struct CMarketReqMarketDataField
{
TDACharType MarketType;
TDACharType SubscMode;
TDAIntType MarketCount;
TDAStringType MarketTrcode[20];
TDAStringType ErrorDescription;
}
看看成員MarketTrcode
,似乎有一個 string/ char *
數組,但我需要通過 C# string[]
前端將值傳遞給 C/C++ 中的這個結構,我該怎么做? 使用 SWIG 4.0.2
用於 PInvoke 編組的等效 C# 結構將是
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
struct TDAStringType
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string String;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
struct CMarketReqMarketDataField
{
public char MarketType;
public char SubscMode;
public int MarketCount;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public TDAStringType[] MarketTrcode;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string ErrorDescription;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.