上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2008-12-28, PM 6:19 星期日 文章主題: [C++/CLI]呼叫.NET函式來建立視窗 |
|
|
最簡單的範例(顯示視窗) :
代碼: |
#using <System.dll>
// 引用 System.dll (專案的參照有設定的話可以不用加)
#using <System.Windows.Forms.dll>
// 引用 System.Windows.Forms.dll (專案的參照有設定的話可以不用加)
using namespace System;
// 偷懶不用打 System:: 用
using namespace System::Windows::Forms;
// 偷懶不用打 System::Windows::Forms 用
void main(){
// 程式進入點
Form^ form1 = gcnew Form();
// 用 System::Windows::Forms::Form 類別來建立一個視窗
// ^是代表使用managed heap,managed 實體要用 gcnew 來建立
Application::Run(form1);
// 開始執行目前執行緒上的標準應用程式訊息迴圈,並顯示指定的表單
}
|
MSDN 還有一個範例(顯示視窗,按按鈕出現對話方塊選NO,就會在ListBox新加一筆次數資料)
其實C++/CLI視窗架構寫起來跟C#有點像 :
代碼: |
#using <System.dll> // 引用 System.dll (專案的參照有設定的話可以不用加)
#using <System.Windows.Forms.dll> // 引用 System.Windows.Forms.dll (專案的參照有設定的話可以不用加)
using namespace System; // 偷懶不用打 System:: 用
using namespace System::Windows::Forms; // 偷懶不用打 System::Windows::Forms 用
public ref class Form1: public System::Windows::Forms::Form
{
private:
Button^ button1;
ListBox^ listBox1;
public:
Form1()
{
button1 = gcnew Button;
button1->Left = 200;
button1->Text = "Exit";
button1->Click += gcnew EventHandler( this, &Form1::button1_Click );
listBox1 = gcnew ListBox;
this->Controls->Add( button1 );
this->Controls->Add( listBox1 );
}
private:
void Form1::button1_Click( Object^ sender, EventArgs^ e )
{
int count = 1;
// Check to see whether the user wants to exit
// the application. If not, add a number to the list box.
while ( MessageBox::Show( "Exit application?", "", MessageBoxButtons::YesNo ) == ::DialogResult::No )
{
listBox1->Items->Add( count );
count += 1;
}
// The user wants to exit the application.
// Close everything down.
Application::Exit();
}
};
int main(void)
{
// Starts the application.
Application::Run( gcnew Form1 );
}
|
如果要隱藏CONSOLE視窗就在
組態 - 連接器 - 系統 的 子系統 選 WINDOWS
組態 - 連接器 - 進階 的 進入點 打main
上面2個改完就OK了
註 : 開啟專案的時候要選CLR專案喔~不然就是C/C++的命令列要加上 /clr _________________ 已經畢業了!!
babu61509 在 2010-9-14, PM 2:08 星期二 作了第 3 次修改 |
|
回頂端 |
|
|
Martin 稍嫌羞澀的路人
註冊時間: 2010-03-02 文章: 2
15.40 果凍幣
|
發表於: 2010-3-2, PM 3:20 星期二 文章主題: 呼叫.NET函式來建立視窗 |
|
|
我用 以下 指令來建立 Windows Form視窗 會出現所附之錯誤訊息
請問大大 如何解決
int main(void)
{
// Starts the application.
Application::Run( gcnew DataFeedForm );
}
錯誤 1 error C2061: 語法錯誤 : 識別項 'DataFeedForm' d:\WebServiceTest\DataFeed\testForm.cpp 41 |
|
回頂端 |
|
|
yag Site Admin
註冊時間: 2007-05-02 文章: 689
2704.11 果凍幣
|
發表於: 2010-3-2, PM 6:45 星期二 文章主題: Re: 呼叫.NET函式來建立視窗 |
|
|
gcnew後面要接的是類別而不是物件名稱
錯誤訊息的意思是編譯器認不出DataFeedForm這個類別
要嘛你沒定義此類別,要嘛你沒#using這個類別或者你沒using該類別所在的namespace |
|
回頂端 |
|
|
Martin 稍嫌羞澀的路人
註冊時間: 2010-03-02 文章: 2
15.40 果凍幣
|
發表於: 2010-3-2, PM 9:04 星期二 文章主題: 隱藏CONSOLE視窗 |
|
|
多謝大大指點:
因小弟初學,不是很熟悉,可不可以請你舉說明,要如何using
我的Namespace 是 VCPPFORM
程式名稱是 DataFeedForm.h 與DataFeedForm.cpp
感激不盡
Martin |
|
回頂端 |
|
|
babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2010-3-4, PM 12:21 星期四 文章主題: Re: 隱藏CONSOLE視窗 |
|
|
貼一下你的source上來吧 先貼.h 跟 main 整個看看?
不然用附件傳上來也可以? _________________ 已經畢業了!! |
|
回頂端 |
|
|
yag Site Admin
註冊時間: 2007-05-02 文章: 689
2704.11 果凍幣
|
發表於: 2010-3-5, PM 12:16 星期五 文章主題: Re: 隱藏CONSOLE視窗 |
|
|
如果DataFeedForm是你自己寫的
那應該#include "DataFeedForm.h"就行了
頂多加個using namespace VCPPFORM; |
|
回頂端 |
|
|
|