C#上创建ActiveX步骤
2015-12-11 17:07
531 查看
C#上创建ActiveX步骤
一新建一个解决方案,网上大部分选择是Framework2.0。我们这次选择4.0.二新建一个类库 命名为ActiveX_Test,设右键该项目-属性-生成
然后选择“应用程序-程序集信息”,
勾上“使程序集Com可见
”
二新建一个接口 IObjectSafety
namespace ActiveX_Test
{
[ComImport, GuidAttribute("E6B3635E-5B12-46B8-AF14-5FE2DE4B103F")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IObjectSafety
{
[PreserveSig]
int GetInterfaceSafetyOptions(ref Guid riid,[MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions,[MarshalAs(UnmanagedType.U4)] ref int pdwEnabledOptions);
[PreserveSig()]
int SetInterfaceSafetyOptions(ref Guid riid,[MarshalAs(UnmanagedType.U4)] int dwOptionSetMask,[MarshalAs(UnmanagedType.U4)] int dwEnabledOptions);
}
}
三新建一个用户控件
[Guid("E6B3635E-5B12-46B8-AF14-5FE2DE4B103F")]
public partial class UserCon : UserControl,IObjectSafety
{
public UserCon()
{
InitializeComponent();
}
private void UserCon_Load(object sender, EventArgs e)
{
}
public string GetStr()
{
return "这是从ActiveX传过来的值";
}
}
四 获取GUID 并替换到接口IObjectSafety的[ComImport, GuidAttribute("新的GUID")]和UserCon类中的[Guid("新的GUID")]
获取GUID的方法
五这样 我们的ActiveX插件算是搭好了,我们下面还需要一个安装程序。
右键解决方案-添加新项
然后右键新建的项目 Setup2
选择我们刚刚建好的插件ActiveX_Test
这样,安装文件就算建好,此时,右键 setup-生成,一般都会提示错误
这
4000
时候,我们只要退出VS,然后以管理员身份重新运行,再执行生成即可。
六验证我们的插件是否成功
右键解决方案,新建一个webForm项目,在webform1.aspx.cs中,添加添加以下代码:
<title></title>
<script type="text/javascript">
function passValue() {
document.getElementById("textValue").value =document.getElementById("helloBossma").GetStr();
}
</script>
</head>
<body>
<object classid="clsid:E6B3635E-5B12-46B8-AF14-5FE2DE4B103F"codebase="/lib/setup.exe"
width="200" height="40"id="helloBossma"></object>
<form id="form1" runat="server">
<div>
<input id="textValue" type="text" />
<input id="Button1" type="button" value="传值"onclick="passValue()" />
</div>
</form>
需要注意的是 这个clsid对应的是我们新建的GUID。
最后,把Setup1生成的两个文件
拷贝到webForm项目的lib文件中即可(lib需要自己建)。
这时候,你便可以浏览webform1.aspx点击其中的按钮试试吧
相关文章推荐
- C#之FileInfo的简单操作
- C#之FileInfo的简单操作
- c# 邮件发送代码分享
- C#反射技术应用
- C#之DirectoryInfo操作
- C#之DirectoryInfo操作
- C#之DirectoryInfo操作
- C#之DirectoryInfo操作
- CSV文件的读写————MES机器文件中比较常用
- XML的文件解析类————比较常用
- C#发送Email邮件三种方法的总结
- c#使用netmail方式发送邮件示例
- C# Mutex对象的使用
- C#中的泛型化方法的实现
- C#中的泛型化方法的实现
- C#方法参数
- c# 改变图片的大小(w,h)
- c#集合的使用
- c#接口
- C#获取当前程序运行路径的方法集合