精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C++和C#相互調用COM組件的方法簡介

開發 后端
本文解答了C++和C#編寫并且相互調用COM組件的一些問題,供大家參考。

前一陣在工作中做項目的時候,遇到了COM組件的調用和使用問題,當時研究和好一陣,才把中間的環節打通,現在寫出C++和C#相互調用COM組件的程序來為大家提供方便,這里包含了四個類型:

1、在VS2005中,C#編寫DLL并使用C++調用

2、在VS2005中C#編寫的COM組件,使用VC6.0調用

3、在VC6.0中編寫COM組件,使用VS2005 C#調用

4、在VC6.0中編寫COM組件,使用VC6.0調用

其中每個類型都寫了兩個程序,一個為COM組件程序,一個為C++和C#相互調用COM組件調用程序

程序實現:

1、在VS2005中,C#編寫DLL并使用C++調用

(1)C#編寫DLL程序

建立C#編寫的DLL程序AddDll,項目類型為:類庫

程序代碼:

  1.     using System;   
  2.   using System.Collections.Generic;   
  3.   using System.Text;   
  4.   namespace AddDll   
  5.   {   
  6.   public class Add   
  7.   {   
  8.   public int iadd(int a, int b)   
  9.   {   
  10.   int c = a + b;   
  11.   return c;   
  12.   }   
  13.   }   
  14.   }  

(2)C++編寫調用程序

建立C++的Win32控制臺應用程序UseDll,項目類型為:Win32控制臺應用程序

配置:右鍵點擊解決方案資源管理器中的UseDll,選擇“屬性”,將公共語言運行庫支持設置為“公共語言運行庫支持(/clr)”

程序代碼:

  1.  #include "stdafx.h"   
  2.   #include "stdio.h"   
  3.   #using "..\debug\AddDll.dll"   
  4.   using namespace AddDll;   
  5.   int _tmain(int argc, _TCHAR* argv[])   
  6.   {   
  7.   int result;   
  8.   Add ^add = gcnew Add();   
  9.   result = add->iadd(10,90);   
  10.   printf("%d",result);   
  11.   scanf("%s");   
  12.   return 0;   
  13.   }  

2、在VS2005中C#編寫的COM組件,使用VC6.0調用

(1)VS2005中使用C#編寫COM組件

建立C#編寫的COM組件,項目類型為類庫

配置:右鍵點擊解決方案資源管理器中的AddCom,選擇“屬性”,選擇“生成”,選擇“為COM Interop注冊(_P)”

打開AssemblyInfo.cs文件,設置[assembly: ComVisible(true)]

這用就可以生成AddCom.tlb文件

程序代碼:

  1.  using System;   
  2.   using System.Collections.Generic;   
  3.   using System.Text;   
  4.   using System.Runtime.InteropServices;   
  5.   namespace AddCom   
  6.   {   
  7.   //可以通過//菜單的 “工具/guid生成”。   
  8.   //注意要選擇Define Guid{….}格式,并全//部保存下來,保存到哪都行,記事本呀什么的。   
  9.   //因為在做VC程序/////////的時候要用到的。   
  10.   [Guid("298D881C-E2A3-4638-B872-73EADE25511C")]   
  11.   public interface AddComInterface   
  12.   {   
  13.   [DispId(1)]   
  14.   int iadd(int a, int b);   
  15.   [DispId(2)]   
  16.   float ladd(float a, float b);   
  17.   }   
  18.   [Guid("2C5B7580-4038-4d90-BABD-8B83FCE***467")]   
  19.   [ClassInterface(ClassInterfaceType.None)]   
  20.   public class AddComService : AddComInterface   
  21.   {   
  22.   public AddComService()   
  23.   {   
  24.   }   
  25.   public int iadd(int a, int b)   
  26.   {   
  27.   int c = 0;   
  28.   c = a + b;   
  29.   return c;   
  30.   }   
  31.   public float ladd(float a, float b)   
  32.   {   
  33.   float c = 0;   
  34.   c = a + b;   
  35.   return c;   
  36.   }   
  37.   }   
  38.   }  

(2)VC6.0編寫調用程序

使用VC6.0編寫建立MFC應用程序UseCom,項目類型為MFC AppWizard(exe)

在stdafx.h添加:

  1.  #import "AddCom.tlb"   
  2.   using namespace AddCom;   
  3.   程序代碼:   
  4.   void CUseComDlg::OnButtonUse()   
  5.   {   
  6.   // TODO: Add your control notification handler code here   
  7.   int dresult;   
  8.   float fresult;   
  9.   CString strResult;   
  10.   CoInitialize(NULL);//NULL換成0也可以   
  11.   AddCom::AddComInterfacePtr p_Add(__uuidof(AddComService));   
  12.   dresult = p_Add->iadd(1,2);   
  13.   fresult = p_Add->fadd(1.2,2.3);   
  14.   strResult.Format("int:%d \nfloat:%f",dresult,fresult);   
  15.   MessageBox(strResult,"計算結果",MB_OK);   
  16.   CoUninitialize();   
  17.   }  

3、在VC6.0中編寫COM組件,使用VS2005 C#調用

(1)VC6.0編寫COM使用VC6.0建立COM組件,

工程類型:ATL COM AppWizard

程序代碼:

接口:

  1.  interface IAdd : IDispatch   
  2.   {   
  3.   [id(1), helpstring("method iadd")] HRESULT iadd([in]int a, [in]int b, [out]int * c);   
  4.   [id(2), helpstring("method fadd")] HRESULT fadd([in]float a, [in]float b, [out]float * c);   
  5.   [id(3), helpstring("method isub")] HRESULT isub([in]int a, [in]int b, [out]int * c);   
  6.   };   
  7.   實現:STDMETHODIMP CAdd::iadd(int a, int b, int *c)   
  8.   {   
  9.   // TODO: Add your implementation code here   
  10.   *c = a + b;   
  11.   return S_OK;   
  12.   }   
  13.   STDMETHODIMP CAdd::fadd(float a, float b, float *c)   
  14.   {   
  15.   // TODO: Add your implementation code here   
  16.   *c = a + b;   
  17.   return S_OK;   
  18.   }   
  19.   STDMETHODIMP CAdd::isub(int a, int b, int *c)   
  20.   {   
  21.   // TODO: Add your implementation code here   
  22.   *c = a - b;   
  23.   return S_OK;   
  24.   }  

(2)VS2005使用C#編寫調用程序(網站程序)

使用VS2005建立網站UseCom

配置:在解決方案資源管理器中的主目錄點擊右鍵,選擇添加引用,選擇COM,添加剛剛建立的AddCom 1.0 Type Library

在程序中要using編寫的COM組件:using ADDCOMLib;

程序代碼:

  1.  using System;   
  2.   using System.Data;   
  3.   using System.Configuration;   
  4.   using System.Web;   
  5.   using System.Web.Security;   
  6.   using System.Web.UI;   
  7.   using System.Web.UI.WebControls;   
  8.   using System.Web.UI.WebControls.WebParts;   
  9.   using System.Web.UI.HtmlControls;   
  10.   using ADDCOMLib;   
  11.   public partial class _Default : System.Web.UI.Page   
  12.   {   
  13.   protected void Page_Load(object sender, EventArgs e)   
  14.   {   
  15.   }   
  16.   protected void ButtonCom_Click(object sender, EventArgs e)   
  17.   {   
  18.   Add add = new Add();   
  19.   int iresult;   
  20.   float fresult;   
  21.   int sresult;   
  22.   add.IAdd(10, 20, out iresult);   
  23.   add.fadd((float)1.2,(float)2.3, out fresult);   
  24.   add.isub(100, 10, out sresult);   
  25.   TextBoxResult.Text = iresult.ToString();   
  26.   TextBoxRe2.Text = fresult.ToString();   
  27.   TextBoxRe3.Text = sresult.ToString();   
  28.   }   
  29.   }  

4、在VC6.0中編寫COM組件,使用VC6.0調用

(1)VC6.0編寫COM組件使用VC6.0建立COM組件,

工程類型:ATL COM AppWizard

程序代碼:

接口:

  1.  interface IAdd : IDispatch   
  2.   {   
  3.   [id(1), helpstring("method iadd")] HRESULT iadd([in]int a, [in]int b, [out]int * c);   
  4.   [id(2), helpstring("method fadd")] HRESULT fadd([in]float a, [in]float b, [out]float * c);   
  5.   [id(3), helpstring("method isub")] HRESULT isub([in]int a, [in]int b, [out]int * c);   
  6.   };   
  7.   實現:STDMETHODIMP CAdd::iadd(int a, int b, int *c)   
  8.   {   
  9.   // TODO: Add your implementation code here   
  10.   *c = a + b;   
  11.   return S_OK;   
  12.   }   
  13.   STDMETHODIMP CAdd::fadd(float a, float b, float *c)   
  14.   {   
  15.   // TODO: Add your implementation code here   
  16.   *c = a + b;   
  17.   return S_OK;   
  18.   }   
  19.   STDMETHODIMP CAdd::isub(int a, int b, int *c)   
  20.   {   
  21.   // TODO: Add your implementation code here   
  22.   *c = a - b;   
  23.   return S_OK;   
  24.   }  

(2)VC6.0編寫調用程序

使用VC6.0建立MFC應用程序UseCOM,調用剛剛建立的COM組件

將上面程序AddCom生成的AddCom.dll放入本程序的工程目錄和程序生成目錄中

在StdAfx.h中加入:

#import "AddCom.dll" no_namespace

程序代碼:

  1.  void CUseComDlg::OnBUTTONUse()   
  2.   {   
  3.   // TODO: Add your control notification handler code here   
  4.   CString strResult;   
  5.   CoInitialize(NULL);//NULL換成0也可以   
  6.   IAddPtr m_add = NULL;   
  7.   HRESULT hr = S_OK;   
  8.   hr = m_add.CreateInstance(__uuidof(Add));   
  9.   int d_a = 90;   
  10.   int d_b = 10;   
  11.   int d_c;   
  12.   int d_d;   
  13.   float f_a = 1;   
  14.   float f_b = 2;   
  15.   float f_c;   
  16.   m_add->_IAdd(d_a,d_b,&d_c);   
  17.   m_add->fadd(f_a,f_b,&f_c);   
  18.   m_add->isub(d_a,d_b,&d_d);   
  19.   strResult.Format("返回結果:%d; %f; %d",d_c,f_c,d_d);   
  20.   MessageBox(strResult,"結果",MB_OK);   
  21.   m_add.Release();   
  22.   m_add = NULL;   
  23.   CoUninitialize();   
  24.   }  

C++和C#相互調用COM組件程序的編寫方法就給大家介紹到這里。

【編輯推薦】

  1. C# winForm自定義鼠標樣式的兩種方法
  2. C#自定義消息框的設置圖解
  3. 掌握C#自定義泛型類:從初始化說起
  4. C#存儲過程的循序漸進
  5. 存儲過程的優勢及其調用方法介紹
責任編輯:book05 來源: IT專家網
相關推薦

2009-09-18 19:09:41

C# COM組件

2009-09-02 16:43:55

C#調用Excel的C

2009-08-19 04:16:00

C#代碼與#函數相互調

2009-09-24 15:10:54

C#調用COM組件

2009-08-05 16:54:02

VC6.0編寫調用COVS2005中C#編寫

2011-04-08 09:52:44

C++C#DLL

2009-08-21 09:14:47

C# Excel CO

2009-09-24 14:59:38

C#編寫COM組件

2009-08-20 11:03:34

Visual C#使用

2009-08-21 17:45:40

C#調用COM對象

2009-08-03 11:32:49

C#調用COM對象

2009-08-05 15:10:19

C#調用GoogleE

2009-08-25 17:07:27

C#虛擬方法

2009-08-10 13:34:11

創建C# COM對象

2009-08-05 16:29:18

C#調用C++動態鏈接

2009-08-26 18:11:52

前臺與后臺方法互調

2011-07-20 16:23:14

C++

2009-08-03 12:57:27

C#調用DLL

2009-08-31 18:05:14

C#調用WalkTre

2009-08-31 16:33:28

C#調用Dispose
點贊
收藏

51CTO技術棧公眾號

中文字幕22页| 无遮挡亚洲一区| 国产午夜在线播放| 精品久久电影| 日韩视频一区在线观看| 无罩大乳的熟妇正在播放| 国产九九在线| 国产成人三级在线观看| 日本不卡高字幕在线2019| 国产三级aaa| 狼人精品一区二区三区在线 | 国产日本一区二区| 成人在线播放av| wwwwww国产| 欧美精品一区二区三区久久久竹菊| 日韩精品视频中文在线观看| 高潮一区二区三区| 26uuu亚洲电影| 一区二区三区在线不卡| 日韩精品av一区二区三区| 亚洲欧美激情国产综合久久久| 丝袜美腿成人在线| 久久久久久成人精品| 国产综合精品久久久久成人av| 丁香婷婷成人| 欧美三级视频在线观看| 日韩免费视频播放| 日本小视频在线免费观看| 中文在线资源观看网站视频免费不卡| 粉嫩高清一区二区三区精品视频| 中文字幕乱码在线观看| 国产精品久久久久毛片大屁完整版 | 色综合五月天| 国产视频亚洲视频| 精品少妇人妻av一区二区三区| 亚洲免费资源| 欧美性猛交xxxxxx富婆| 欧美aⅴ在线观看| h片精品在线观看| 亚洲摸摸操操av| 亚洲一区二区三区欧美| 国产经典自拍视频在线观看| 97se亚洲国产综合自在线观| 国产精品乱码| 国产 日韩 欧美 综合| 国产一区二区三区久久久| 国产精品一区二区久久久久| 99久久久久久久久| 久久免费国产| 日本成人激情视频| 天天操夜夜操视频| av成人天堂| 91爱爱小视频k| 日韩福利片在线观看| 伊人狠狠色j香婷婷综合| 久久久久国产视频| 国产精品99re| 午夜在线一区二区| 国产成人高清激情视频在线观看| 国产精品第六页| 蜜桃av噜噜一区| 成人黄色av播放免费| 在线观看亚洲国产| 黑人巨大精品欧美黑白配亚洲| 国产精品普通话| 97人妻人人澡人人爽人人精品| 韩国精品在线观看| 91传媒视频在线观看| 刘亦菲久久免费一区二区| 不卡av在线网| 久久精品国产99精品国产亚洲性色| 天天操天天爱天天干| 91视频国产资源| 日韩欧美亚洲区| 自拍视频在线网| 亚洲视频一区二区在线| avav在线播放| 综合日韩av| 欧美在线观看你懂的| 永久免费的av网站| 欧美中文高清| 日韩成人网免费视频| 永久免费成人代码| 性欧美欧美巨大69| 午夜精品一区二区三区在线视频| 人妻 日韩精品 中文字幕| 免费人成在线不卡| 99re在线观看| 日本天堂在线| 最新不卡av在线| 18禁网站免费无遮挡无码中文| 亚洲www免费| 91精品久久久久久久91蜜桃| 亚洲精品国产成人av在线| 国产剧情在线观看一区| 欧美成人高清视频| 国产精品一区无码| 国产麻豆欧美日韩一区| 欧美精品一区二区三区久久| 黄网站app在线观看| 黑人欧美xxxx| 色欲无码人妻久久精品| 亚洲丝袜美腿一区| 欧美激情视频在线观看| 波多野结衣不卡| 风间由美性色一区二区三区| 日韩福利在线| av有码在线观看| 欧美日韩国产一二三| 无码任你躁久久久久久老妇| 欧美激情电影| 欧美综合国产精品久久丁香| 国产强被迫伦姧在线观看无码| www国产精品av| 久久www视频| 成人毛片免费| 亚洲欧美精品一区| 国产一级视频在线| 国内精品不卡在线| 欧美成人综合一区| 九色porny丨首页入口在线| 9191精品国产综合久久久久久| 国产吞精囗交久久久| 国内精品久久久久久久影视麻豆 | 男人添女人下面高潮视频| 成人激情久久| 色偷偷综合社区| 亚洲国产精品无码久久久| 成人精品在线视频观看| eeuss中文| 日韩欧美三区| 日韩有码在线视频| 中文在线a天堂| 国产日产欧美一区二区三区 | 免费在线看黄网址| 国产在线精品一区二区夜色 | 91精品国产91久久综合桃花| 亚洲女同二女同志奶水| 男人操女人的视频在线观看欧美 | 国产午夜视频在线观看| 精品久久久久久久大神国产| 中文字幕在线视频播放| 欧美日韩国产色综合一二三四| 成人动漫网站在线观看| 在线观看av的网站| 欧美精品丝袜久久久中文字幕| 丁香激情五月少妇| 日韩二区在线观看| 五月天婷亚洲天综合网鲁鲁鲁| 欧美自拍电影| 国产亚洲欧美日韩精品| 午夜精品一区二| 日本一区二区视频在线观看| 亚洲免费一级视频| 97精品国产| 亚洲wwwav| 毛片在线网址| 亚洲国产99精品国自产| 六月丁香在线视频| 久久久久久久久99精品| 国产91美女视频| 国产探花在线精品| 国产日韩精品在线| а√天堂官网中文在线| 欧美成人一区二区三区在线观看 | 亚洲日本黄色| 久久精品ww人人做人人爽| 欧美粗大gay| 中文字幕九色91在线| 91久久精品无码一区二区| 亚洲人成网站色在线观看| 熟妇女人妻丰满少妇中文字幕| 好看的av在线不卡观看| 国产主播一区二区三区四区| 欧美成人免费电影| 久久亚洲成人精品| 亚州精品国产精品乱码不99按摩| 欧美性xxxx极品hd欧美风情| 五月激情四射婷婷| 国产在线播放一区| 3d动漫一区二区三区| 精品视频免费| **亚洲第一综合导航网站| 麻豆免费在线| 中文字幕久热精品视频在线| 亚洲国产成人精品一区二区三区| 欧美午夜激情在线| 成人欧美一区二区三区黑人一| 懂色av一区二区夜夜嗨| 日韩中文字幕二区| 中文字幕日韩一区二区不卡 | 粉嫩av一区二区三区免费野| 日本污视频网站| 丰满少妇久久久久久久| 男人搞女人网站| 欧美午夜一区二区福利视频| 欧美日本韩国一区二区三区| 精品麻豆剧传媒av国产九九九| 97超碰蝌蚪网人人做人人爽 | 国语产色综合| av色综合网| 国产成人久久精品麻豆二区| 午夜精品一区二区三区在线播放| 日本在线免费网| 精品伊人久久97| 99国产精品99| 色噜噜偷拍精品综合在线| 精品爆乳一区二区三区无码av| 久久综合久久鬼色中文字| 97超碰人人看| 免费在线视频一区| 国产熟女高潮视频| 亚洲福利久久| 精品一区二区三区毛片| 欧美综合视频| 欧美另类视频在线| 极品国产人妖chinesets亚洲人妖| 91久久久在线| 天堂久久午夜av| 日本视频久久久| 国产777精品精品热热热一区二区| 久久久国产成人精品| 国产精品一二三区视频| 亚洲精品久久久久中文字幕二区| 国产视频一区二区三| 在线观看亚洲专区| 91精品国产高清一区二区三密臀| 亚洲韩国精品一区| 九九视频在线免费观看| 亚洲欧美自拍偷拍色图| 潮喷失禁大喷水aⅴ无码| 2023国产精品视频| 先锋资源av在线| 福利一区在线观看| 国产又黄又嫩又滑又白| 国产综合久久久久影院| 国内外成人免费在线视频| 热久久一区二区| 黑人粗进入欧美aaaaa| 久久资源在线| 日韩精品一区二区三区色欲av| 亚洲国产日韩欧美一区二区三区| 日本人妻伦在线中文字幕| 亚洲成av人电影| 永久免费在线看片视频| 成人久久综合| 中文字幕精品—区二区日日骚| 欧美精品一区二区三区精品| 日本高清不卡一区二区三| 欧美一区二区三区高清视频| 视频在线精品一区| 久久国产精品亚洲人一区二区三区| 亚洲精品一区二区三区四区五区| 日韩伦理视频| 国产女主播av| 在线播放亚洲| 人妻少妇被粗大爽9797pw| 水蜜桃久久夜色精品一区的特点 | 亚洲欧美国产日韩中文字幕| 免费播放片a高清在线观看| 国产亚洲欧美日韩精品| 日本在线播放| 欧美激情xxxx| 日本不卡1234视频| 国产精品99久久久久久www | 99re在线视频上| www国产精品| 欧美日韩在线高清| 99久久国产综合精品成人影院| 日韩精品福利片午夜免费观看| 亚洲另类自拍| 69久久久久久| 国产二区国产一区在线观看| 五月开心播播网| 欧美韩国日本不卡| 免费在线观看日韩| 一本大道久久a久久精品综合| 久久国产香蕉视频| 日韩一级完整毛片| 午夜视频在线播放| 国产一区二区三区高清在线观看| 黄色免费在线观看网站| 久久久噜噜噜久久中文字免| 日本美女一区| 92福利视频午夜1000合集在线观看| 精品女人视频| 五月天综合网| 日韩一级在线| 亚洲欧美视频二区| 北条麻妃一区二区三区| 久久av无码精品人妻系列试探| 亚洲人成网站色在线观看| 日本一级淫片免费放| 欧美日韩精品欧美日韩精品| 高清乱码毛片入口| 在线看欧美日韩| www.超碰在线| 国产拍精品一二三| 亚洲激情播播| 成年人深夜视频| 美腿丝袜亚洲色图| 中文成人无字幕乱码精品区| 亚洲欧洲精品天堂一级| 国产 欧美 日韩 在线| 制服丝袜日韩国产| 国产午夜在线观看| 97超级碰在线看视频免费在线看| 2020国产精品小视频| 日本电影一区二区三区| 激情综合中文娱乐网| 亚洲视频一二三四| 国产欧美日韩麻豆91| 亚洲精品77777| 精品少妇一区二区三区免费观看 | 亚洲天堂成人网| 香蕉影院在线观看| 精品美女在线观看| а√资源新版在线天堂| 国产日本欧美一区二区三区| 妖精视频一区二区三区| 国产一区二区网| 高清av一区二区| 精品欧美一区二区久久久久| 欧美日韩国产高清一区二区| 精品三级久久久久久久电影聊斋| 97高清免费视频| 白嫩白嫩国产精品| 嫩草影院中文字幕| 国产成人免费在线观看| 手机在线免费看毛片| 欧美日韩免费一区二区三区视频 | 中文字幕在线播放不卡一区| 国产精品久免费的黄网站| 欧美精品一区二区在线播放| www在线视频| 91亚洲国产成人久久精品网站| 欧美视频网址| 国产又大又黄又粗又爽| 欧美国产精品一区二区| 日韩乱码一区二区三区| 一本色道久久综合亚洲精品小说| 亚洲成人不卡| 日韩视频精品| 久久激情五月激情| 日韩一卡二卡在线观看| 欧美欧美欧美欧美首页| 免费网站黄在线观看| 国产一区红桃视频| 五月天激情综合网| 免费国偷自产拍精品视频| 一区二区三区不卡在线观看 | 99久久久国产精品| 日本道在线观看| 亚洲黄色www| 免费观看亚洲| 日韩亚洲视频在线| 久久se这里有精品| 日本中文字幕免费在线观看 | 毛片网站在线| 国产精品黄页免费高清在线观看| 欧美军人男男激情gay| 青青在线免费观看视频| 欧美激情一区二区在线| 亚洲熟女乱色一区二区三区久久久| 久久精彩免费视频| 亚洲综合色婷婷在线观看| 色综合久久久久无码专区| 国产亚洲成aⅴ人片在线观看| 亚洲一区二区视频在线播放| 欧美成人亚洲成人日韩成人| 麻豆成人入口| 福利在线一区二区三区| 亚洲少妇最新在线视频| 免费看黄网站在线观看| 国产成人精品在线播放| 99精品美女| 99久久久无码国产精品性波多| 亚洲va韩国va欧美va| 黄色小视频在线观看| 91丨九色丨国产在线| 一本色道久久综合一区| 男人天堂资源网| 精品黑人一区二区三区久久| 国产综合色区在线观看| 今天免费高清在线观看国语| 91麻豆国产在线观看| 一级特黄色大片| 91国内免费在线视频| 成人一级毛片| 天天躁日日躁狠狠躁免费麻豆| 欧美优质美女网站| 1234区中文字幕在线观看| 日韩高清dvd| 成人免费高清在线观看| 在线观看黄色国产| 欧美亚洲免费电影| 91精品国偷自产在线电影| 性久久久久久久久久| 91精品国产91久久综合桃花| 高清不卡亚洲|