C#实现COM:简单示例
2013-11-05 16:11
615 查看
1 绪
算上最近一次使用C#编写COM,已经是第二次为了在LR中调用DLL而编写COM了。
这次编写的COM仍然是为了让VC++ DLL调用,因为本人更熟悉在LR中使用C语言脚本。当然,在LR中其实也是可以直接使用C# COM的,通过VBS脚本就可以了,非常简单。
下面以一个案例形式,记录在VS2010中建立的COM过程的主要结构。
2 编程实现
2.1 设置
语言选择C#,工程类型选择COM类库工程。然后是进行如下一些设置:
打开project/your project properties/application,设置程序集名称和缺省名字空间,最好一致。
在build\output,勾选register for cominterop。
在signing,勾选sign the assembly,并设置一个强名称,建议不加密。
另外,编辑properties/AssemblyInfo.cs ,设置:
默认情况下ComVisible是设为false的。
完成上述设置后,编写yourClass.cs文件,这个是你的主类文件,下面是示例。关于guid的生成,可以看这篇文章:http://www.cnblogs.com/Real_Dream/articles/1577938.html。
2.2 源码
算上最近一次使用C#编写COM,已经是第二次为了在LR中调用DLL而编写COM了。
这次编写的COM仍然是为了让VC++ DLL调用,因为本人更熟悉在LR中使用C语言脚本。当然,在LR中其实也是可以直接使用C# COM的,通过VBS脚本就可以了,非常简单。
下面以一个案例形式,记录在VS2010中建立的COM过程的主要结构。
2 编程实现
2.1 设置
语言选择C#,工程类型选择COM类库工程。然后是进行如下一些设置:
打开project/your project properties/application,设置程序集名称和缺省名字空间,最好一致。
在build\output,勾选register for cominterop。
在signing,勾选sign the assembly,并设置一个强名称,建议不加密。
另外,编辑properties/AssemblyInfo.cs ,设置:
[assembly: ComVisible(true)]
默认情况下ComVisible是设为false的。
完成上述设置后,编写yourClass.cs文件,这个是你的主类文件,下面是示例。关于guid的生成,可以看这篇文章:http://www.cnblogs.com/Real_Dream/articles/1577938.html。
2.2 源码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using System.IO; using System.Runtime.InteropServices; //for comvisible namespace ZHBEnDeLib { [Guid("9A26F178-28D6-43AC-9C1A-2CD9F9D01246")] public interface IZHBEnDe { [DispId(1)] void Initialize(); [DispId(2)] void Dispose(); //加密API [DispId(3)] string EnStr(string toEn); //解密API [DispId(4)] string DeStr(string toDe); } [Guid("B1612D7D-3DB0-4CC3-8C3C-3504CBC77BAD")] [ClassInterface(ClassInterfaceType.None)] public class ZHBEnDe : IZHBEnDe { public void Initialize() { } public void Dispose() { } //加密API public string EnStr(string toEn) { //your encrypt code } //解密API public string DeStr(string toDe) { //your decrypt code } }
相关文章推荐
- C#摄像头实现拍照功能的简单代码示例
- C#实现数据库事务处理的简单示例代码
- C#实现数据库事务处理的简单示例代码
- xmlHTTP xmlDOC 与 C#中DataSet的结合 实现AJAX简单示例
- C#实现的简单随机数产生器功能示例
- .net2005(C#)下实现事件和委托的简单示例
- C#摄像头实现拍照功能的简单代码示例
- xmlHTTP xmlDOC 与 C#中DataSet的结合 实现AJAX简单示例
- C#使用命令行方式实现Ping简单功能 http://www.cnblogs.com/kevinton/archive/2007/06/28/798581.html
- C#摄像头实现拍照功能的简单代码示例
- 贴下百度博客自动加好友的简单代码示例!!(c#.net实现)
- xmlHTTP xmlDOC 与 C#中DataSet的结合 实现AJAX简单示例
- xmlHTTP xmlDOC 与 C#中DataSet的结合 实现AJAX简单示例
- xmlHTTP xmlDOC 与 C#中DataSet的结合 实现AJAX简单示例
- C#实现的简单整数四则运算计算器功能示例
- C#实现线程池的简单示例
- C#摄像头实现拍照功能的简单代码示例
- C#中计时器的简单实现方法示例
- c#实现简单控制台udp异步通信程序示例
- C# 如何实现简单的Socket通信(附示例) 推荐