電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
[C++/CLI]呼叫.NET函式來建立視窗

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式中級班:資料結構、Win32 API、各種視窗函式庫
上一篇主題 :: 下一篇主題  
發表人 內容
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
文章: 688

2673.35 果凍幣

發表發表於: 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
文章: 688

2673.35 果凍幣

發表發表於: 2010-3-5, PM 12:16 星期五    文章主題: Re: 隱藏CONSOLE視窗 引言回覆

如果DataFeedForm是你自己寫的
那應該#include "DataFeedForm.h"就行了
頂多加個using namespace VCPPFORM;
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式中級班:資料結構、Win32 API、各種視窗函式庫 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作