簡體   English   中英

如何將 C# string[] 傳遞給 C char** 或 char[][]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM