[英]Using C++-cli, how can I instantiate WinForms form defined in C# library?
很抱歉,如果您已經回答了這個問題,但找不到。
我正在嘗試在C ++程序中的函數被調用時打開C#窗體(主程序在C ++-cli中,窗體在C#中,它是一個空窗體,僅用於嘗試其工作方式)。 我正在使用Visual Studio 2005,並且我的解決方案中都有兩個項目。 C#項目只是一種形式,我已將其配置為類庫。 但是,當我轉到C ++程序的函數時,請在開頭輸入以下內容:
int _stdcall Init(void)
{
...
FormProject::Form1 form1;
form1 = new FormProject::Form1::Form1();
form1.something();
...
}
我對C ++的經驗很少,我嘗試了不同的組合,但我很不幸。 C ++項目已與CLI兼容。 我已經包含了所需的內容:
#using <System.Windows.Forms.dll>
#using <System.dll>
我知道這里有一些大錯誤,但我只需要運行此表單即可,不再需要。 非常感謝你。
編輯:我已經添加了引用。
在使用C#庫中的類型之前,C ++ / CLI項目將需要添加對C#項目的引用。
如果您了解我的話,我認為您需要使用C ++ / CLI的語法增強實例化C#對象。 例如,您發布的代碼應為:
FormProject::Form1^ form1;
form1 = gcnew FormProject::Form1::Form1(); // or FormProject::Form1()
form1->something();
我建議您在托管C ++中創建一個新的WinForms項目,並僅查看生成的代碼以獲取正確的語法。
您是否在C ++項目中添加了對FormProject的引用? 如果這樣做了,您是否為FormProject命名空間添加了#using語句?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.