C#.NETcom组件的编写-创新互联

环境:VS2010...WIN7系统
设置工程属性:“生成”-> “为COM Interop注册”。
当然也可以为每个接口设置COM可见性,ComVisibleAttribute类提供了这样的控制。
更改AssemblyInfo.cs……设置COM可见

成都创新互联公司是一家集网站建设,新沂企业网站建设,新沂品牌网站建设,网站定制,新沂网站建设报价,网络营销,网络优化,新沂网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

// 将? ComVisible 设Θ?置?为a false 使?此?程ì序ò集ˉ中D的?类え?型í
// 对? COM 组哩?件t不?可é见?。£如?果?需è要癮从洙?COM 访?问ê此?程ì序ò集ˉ中D的?类え?型í,?
// 则ò将?该?类え?型í上?的? ComVisible 特?性?设Θ?置?为a true。£
[assembly: ComVisible(true)]

建立源码

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace MyLib
{
[ComVisible(true)]
[Guid("2CBD3D76-35F1-4f9d-9C1B-9DBFEE412F77")]
public interface IMyClass
{
void Initialize();
void Dispose();
String VC(String path);
}

[ComVisible(true)]
[Guid("EA2F140A-108F-47ae-BBD5-83EEE646CC0e")]
[ProgId("MyLib.MyClassa")]
public class MyClass : IMyClass
{
public void Initialize()
{
 //nothing todo
}
public void Dispose()
{
 //nothing todo
}
public String VC(String path)
{
//  x + y;
 if (path.Trim().Equals(""))
 {

     return "no pathx";
 }

 fastvcAtiLib.fastvcyjmC2k c = new fastvcAtiLib.fastvcyjmC2k();
 //   c.novc = true;   //4 test .only show pic .not show vercode text
 // c.oriImg = true;   //img not process and get vercode... cant echo show img pic ..
 c.vg = 1;
 c.sid = "c2n";

 string VerifyCode;
 try
 {
     VerifyCode = c.RecByte(path);
 }
 catch (Exception ex)
 {
     VerifyCode = ex.Message;
 }
 return VerifyCode;
}
}
}
注册COM组件DLL
regasm   ClassLibrary1.dll /codebase

如果你的DLL不 是强签名的,则必须要使用/codebase参数

反注册使用
regasm  /u ClassLibrary1.dll

使用HTML中VBS脚本测试 


Dim o : Set o=CreateObject("MyLib.MyClass")  
o.Initialize
MsgBox "1 + 2 = " & o.vc("c:\dx.jpg")
o.Dispose
Set o=Nothing

提示不能创建 ACTIVEX 控件……

原因:是因为注册没有注册上……

提示找不到路径

说明已经注册上了。可能DLL不是强签名的,而又没有指定/CODEBASE属性,导致注册里没有这个键值。而查找不到。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


新闻名称:C#.NETcom组件的编写-创新互联
链接分享:http://ybzwz.com/article/cejhpd.html