C#调用ATL COM
生活随笔
收集整理的這篇文章主要介紹了
C#调用ATL COM
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:朱金燦
來源:http://blog.csdn.net/clever101
?????
??? ?????????簡單介紹C#程序如何調用ATL編寫的COM組件。
?
首先新建一個ATL工程,具體如下:
1. 填寫工程名稱和路徑,如下圖: ???
2. 選擇工程的服務器類型為動態鏈接庫,如下圖:
3. 添加一個ATL簡單對象,如下圖:
4. 填寫類名稱,如下圖:
5. 選擇類的線程模型及其它屬性,如下圖:
6. 為接口類添加一個方法,如下圖:
7. 填寫方法名及輸入輸出參數,如下圖:
8. 設置IDL接口屬性,這里采用默認設置即可,如下圖:
為剛才新建的Add方法添加代碼,具體如下:
STDMETHODIMP CMathCalc::Add(LONG Num1, LONG Num2, LONG* Ret) {// TODO: 在此添加實現代碼assert(NULL!=Ret);*Ret = Num1+Num2;return S_OK; }???? 然后編譯工程,生成一個dll形式的COM。
?
第二步新建一個C#控制臺測試工程,具體如下:
1. 填寫控制臺工程名稱及路徑,如下圖:
2. 添加一個新的庫引用,如下圖:
3. 選擇剛才新生成的COM——MathCom 1.0類型庫,如下圖:
4. 在Program.cs中添加如下代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MathComLib; // 注意使用命名空間namespace TestMathCom {class Program{static void Main(string[] args){int a = 2;int b = 3;int lRetVal = 0;MathCalc MyMathCalc = new MathCalc();MyMathCalc.Add(a, b,out lRetVal); // 注意這里有一個out關鍵字System.Console.Write(lRetVal.ToString());System.Console.WriteLine("\nPress Enter to continue.");System.Console.ReadLine();}} }?
效果圖如下:
?
??????
問題:
1.C#調用COM接口,在參數類型中必須是C#的int類型而不是long類型對應COM的long類型,為什么呢?
?
?
?
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/dyllove98/archive/2013/06/10/3131084.html
總結
以上是生活随笔為你收集整理的C#调用ATL COM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个显示页码用的helper。。。
- 下一篇: 查看计算机本机IP地址,本机ip地址查询