日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用托管C++粘合C#和C++代碼(二)

上篇文章講解了在C#代碼中調(diào)用純C++模塊的基本流程。在本文章中我們再來實(shí)現(xiàn)一下C++代碼調(diào)用C#代碼的過程。我構(gòu)造一個(gè)簡單并且直觀的例子:通過C++ UI 觸發(fā)C# UI.

首先建立一個(gè)C#工程Class Library工程——CSharpUI

為該工程添加一個(gè)Form界面,并添加一個(gè)C#函數(shù)——InvokeUi()來構(gòu)造并顯示這個(gè)界面

 
 
 
 
  1. namespace CSharpUI  
  2. {  
  3. public class Program  
  4. {  
  5. public static void InvokeUi()  
  6. {  
  7. //class Form1-----C# UI  
  8. Form1 fm = new Form1();  
  9. fm.ShowDialog();  
  10. }  
  11. }  
  12. }  

建立一個(gè)托管的DYNAMIC LINK LIBRARY工程——MgdPro(具體步驟參考上篇文章)。

在MgdPro工程中用代碼包裝了對上述C#函數(shù)的調(diào)用,并將包裝后的類從DLL導(dǎo)出。前提條件是reference CSharpUI.dll.

 
 
 
 
  1. //.h file  
  2. #define DLLIMPEXP __declspec(dllexport)  
  3. class DLLIMPEXP MgdClass  
  4. {  
  5. public:  
  6. static void InvokeCsharpDlg();  
  7. };  
  8.  
  9. //.cpp file  
  10. using namespace CSharpUI;  
  11. void MgdClass::InvokeCsharpDlg()  
  12. {  
  13. Program::InvokeUi();  
 

***,新建一個(gè)Dialog Based的C++工程——PureC++Pro(exe工程),在工程中靜態(tài)鏈接MgdPro.dll.在Invoke按鈕的觸發(fā)函數(shù)里調(diào)用代碼觸發(fā)C#界面。

 
 
 
 
  1. void CPureCProDlg::OnBnClickedButton1()  
  2. {  
  3. // TODO: Add your control notification handler code here  
  4. //call managed c++ to invoke c# UI  
  5. MgdClass::InvokeCsharpDlg();  
  6. }  

運(yùn)行界面如下所示:

【編輯推薦】

  1. 使用托管C++粘合C#和C++代碼(一)
  2. 如何學(xué)好C++,用好類庫很重要
  3. 認(rèn)識基于中間件的軟件開發(fā)方法
  4. JSP動(dòng)態(tài)網(wǎng)站環(huán)境搭建應(yīng)用中的詳細(xì)步驟
  5. Java編譯器優(yōu)化方法簡介

當(dāng)前文章:使用托管C++粘合C#和C++代碼(二)
本文鏈接:http://m.5511xx.com/article/djhhojj.html