博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#调用ATL COM
阅读量:2428 次
发布时间:2019-05-10

本文共 1148 字,大约阅读时间需要 3 分钟。

作者:朱金灿

来源:

     

             简单介绍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类型,为什么呢?

 

 

 

 

 

 

 

 

 

 

 

 

转载地址:http://crimb.baihongyu.com/

你可能感兴趣的文章
Hadoop/MapReduce、Spark 朴素贝叶斯分类器分类符号数据
查看>>
Hadoop/MapReduce 查找、统计和列出大图中的所有三角形
查看>>
Flume 日志收集、使用Flume收集日志到HDFS
查看>>
消息队列系列之ActiveMQ(JMS、集群配置)
查看>>
消息队列系列之分布式消息队列Kafka
查看>>
图形数据库Neo4j入门
查看>>
Ubuntu下使用Python开发Spark程序
查看>>
《Spark机器学习》笔记——基于MovieLens数据集使用Spark进行电影数据分析
查看>>
《Spark机器学习》笔记——基于MovieLens数据集使用SparkMLib机器学习库构建电影推荐引擎
查看>>
《Spark机器学习》笔记——Spark分类模型(线性回归、朴素贝叶斯、决策树、支持向量机)
查看>>
《Spark机器学习》笔记——Spark高级文本处理技术(NLP、特征哈希、TF-IDF、朴素贝叶斯多分类、Word2Vec)
查看>>
《Spark机器学习》笔记——Spark回归模型(最小二乘回归、决策树回归,模型性能评估、目标变量变换、参数调优)
查看>>
《Spark机器学习》笔记——Spark构建聚类模型
查看>>
《Spark机器学习》笔记——Spark应用于数据降维
查看>>
《Spark机器学习》笔记——Spark Streaming 在实时机器学习中的应用
查看>>
安卓查看当前运行App所显示的Activity的包名
查看>>
Hive on Spark 注意事项
查看>>
HBase 的安装与配置
查看>>
向HBase中导入数据1:查询Hive后写入
查看>>
使用Java访问远程HBase数据库
查看>>