C#调用ActiveX控件
背景:最近项目中需要用到ActiveX控件,项目是在.Net平台下开发的。因此就直接在项目中添加了对ActiveX控件的引用,添加引用成功。在代码中实例化类的实例也没有问题,但在调用其方法或属性时总是抛出"未处理 COMException"异常。
方法一:
1、在系统中注册该ocx控件,命令:regsvr32.exe 控件位置(加 /u 参数是取消注册);
2、在.net的工具箱中添加该控件,拖到form中去就可以了。
方法二:
1、用Aximp.exe来包装一下ocx控件的类;
2、在程序中引用生成的dll就可以了。
区别:
1、方法一不需要手动包装ocx控件,方法二需要;
2、方法一需要将控件先添加到工具箱,方法二不需要。
************************************************************************
关于Aximp.exe包装ock控件在msdn中一段相关文字,链接:http://msdn.microsoft.com/zh-cn/library/8ccdh774(VS.80).aspx
链接内容:
显示该工具的命令语法和选项。
使用在 containerName 所指定的密钥容器中找到的公钥/私钥对,用强名称对结果控件进行签名。
/keyfile: filename:
使用在 filename 中找到的发行者的正式公钥/私钥对,用强名称对结果控件进行签名。
/nologo:
取消显示 Microsoft 启动标题。
/out: filename:
指定要创建的程序集的名称。
/publickey: filename:
使用在 filename 所指定的文件中找到的公钥,用强名称对结果控件进行签名。
/silent:
取消显示成功消息。
/source:
生成 Windows 窗体包装的 C# 源代码。
/verbose:
指定详细模式;显示附加的进度信息。
/? :
显示该工具的命令语法和选项。
如果 ActiveX 控件的成员名称与 .NET Framework 中定义的名称匹配,则 Aximp.exe 在创建 AxHost 派生类时,将在成员名称前加上前缀“Ctl”。例如,假设 ActiveX 控件有一个名为“Layout”的成员,由于在 .NET Framework 中定义了 Layout 事件,因此该成员在 AxHost 派生类中将重命名为“CtlLayout”。
下面的命令为媒体播放器控件 msdxm.ocx 生成 MediaPlayer.dll 和 AxMediaPlayer.dll。
C#调用ActiveX控件的更多相关文章
- 袁创:使用反射动态调用ActiveX控件
■■■■前言 目前的基于.NET平台的软件研发中仍然存在大量的对COM及ActiveX控件的调用.使用C#调用ActiveX控件时一般是使用vs.net工具自动生成的互操作性程序集.这种方法操作简单, ...
- 使用反射动态调用ActiveX控件
使用反射动态调用ActiveX控件 袁永福 2018-3-2 ■■■■问题描述: 目前的基于.NET平台的软件研发中仍然存在大量的对COM及ActiveX控件的调用.使用C#调用ActiveX控件时一 ...
- 【VS开发】使用MFC创建并调用ActiveX控件
使用MFC创建并调用ActiveX控件 今天做了一下ActiveX的使用测试,总结一下: 首先使用MFC创建一个activeX的控件譬如ActiveXTest,编译成ocx并注册,然后另外编写一个测试 ...
- ie 64bit调用activex控件
1,首先,这是可能的.不要被网上一堆ie64调不了activex控件的文章误导了.flash就是一个现成的例子,flash支持ie64. 2,ie64只能调用64bit的activex控件.网上那些说 ...
- 谷歌浏览器调用activex控件方法
原文转自 https://jingyan.baidu.com/article/af9f5a2d0ebe5543140a4596.html activex是由微软开发,所以在支持上,目前原生态支持的只有 ...
- 【转】Win32程序中调用ActiveX控件
#include "stdafx.h" #include <iostream> #include <windows.h> #include <comd ...
- Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693 长期持续带来更多项目与技术分享 ...
- .net下开发ActiveX控件
` ActiveX 是一个开放的集成平台,为开发人员. 用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法. 使用 ActiveX, 可 ...
- 使用C#开发ActiveX控件(新)
前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...
随机推荐
- Apache Commons IO 2.3 几点用法
//直接将IO流转成字符串 InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try { ...
- C#4.0中var和dynamic的区别
1. var表示“变量的类型是在编译时决定的”, var让你在初始化变量时少输入一些字,编译器会根据右值来推断出变量的类型, var只能用于局部变量的定义,你不能把类的属性定义成 var,也不能把方法 ...
- 编译 Spring-framework的经验分享
Spring-framework source codegit url: git clone git://github.com/SpringSource/spring-framework.git 导入 ...
- poj 1274 The Perfect Stall【匈牙利算法模板题】
The Perfect Stall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 20874 Accepted: 942 ...
- POJ 2955 括号匹配,区间DP
题意:给你一些括号,问匹配规则成立的括号的个数. 思路:这题lrj的黑书上有,不过他求的是添加最少的括号数,是的这些括号的匹配全部成立. 我想了下,其实这两个问题是一样的,我们可以先求出括号要匹配的最 ...
- C#封装加密算法(MD5、SHA、HMAC、DES、RSA)的一个类
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Wen. ...
- noip 2015 提高组
算是填个坑吧 , QwQ Day 1 第一题很水,就是考代码能力 ,直接贴代码. #include <iostream> #include <cstdlib> #include ...
- ctrl+z的JAVA实现,借助了命令模式(command pattern)
前些天学习<<JAVA与模式>>,到命令模式时,随带给了一个CTRL+Z案例的实现,想来学习编程这么久,CTRL+Z还没有认真实现过. 因此,借助JAVA与模式里面的源代码,自 ...
- Microsoft SyncToy 文件同步工具
Microsoft SyncToy SyncToy 是由 微软 推出的一款免费的文件夹同步工具.虽然名字中有一个 Toy,但是大家可千万不要误以为它的功能弱爆了.实际上,我感觉这款软件还真是摆脱了微软 ...
- Unity3D中Prefab
Prefab概念: Prefab是一种资源类型--存储在项目视图中的一种可反复使用的游戏对象.因而当游戏中须要非常多反复使用的对象.资源等时,Prefab就有了用武之地.它拥有下面特点: 能够放到多个 ...