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