簡體   English   中英

將結構從VC ++傳遞到C#

[英]Passing structure from VC++ to C#

我在VC ++應用程序中使用C#DLL。 我在VC ++中有一些細節,例如

PageNumer
pageTitle
PageDesc
BoxDetail

我必須將這些傳遞給C#DLL。 因此,我在VC ++中建立了一個結構,然后將其傳遞給C#。 但是我做不到。 請幫我。

VC ++功能:

struct SCS3OverVwPg
{
 __int32 iOvrPgNo;      
 char sOvrPgTitle[30]; //OverView Page Title
};


void CToolTab::SendOverview()
{ 
    SCS3OverVwPg *pOverVw = 0;
    pOverVw = new SCS3OverVwPg;    
    Globals1::gwtoolbar->SetTree(pOverVw);
}

C#函數:

public struct SCS3Over
{
    Int32 iOvrPgNo;
    char[] sOvrPgTitle;
}

public void SetTree(SCS3Over x)
{
  MessageBox.Show("Data received");          

}

如果我這樣做,則會顯示錯誤

錯誤C2664:'Tabcontrol :: ToolBar :: SetTree':無法將參數1從'SCS3OverVwPg *'轉換為'SCS3Over'

如果我將C#DLL中的名稱更改為SCS3OverwPg ,則顯示error of structure redifinition 請幫我。

我將不得不假設您正在使用托管C ++。

無需在托管C ++中重新聲明結構,只需從C#程序集中引用結構類型,然后在調用函數時使用該結構類型即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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