C#开发ActiveX求助...引用了一个第三方的dll,编译通过了。安装调用的时候调用不到这个dll

问题描述

C#开发ActiveX求助...引用了一个第三方的dll,编译通过了。安装包制作安装,通过ie调用的时候调用ActiveX没有引用到第三方dll的方法都可以正常使用,引用到第三方dll的方法调用都没反应,感觉是第三方dll没有加载到,但是我dll跟ActiveX放的同个目录,网上找了好多方法,试过把第三方dll复制到windows、system32、浏览器根目录下都没有用。请高手指点.

解决方案

解决方案二:
注册全局的DLL写ActiveX的时候用动态引用之类的都可以解决....以前碰到过死活的调用不到..嘿嘿嘿嘿...我后来写动态引用解决的....在系统程序的资源目录里把DLL放在那儿....然后ActiveX去引用的....嗯...
解决方案三:
引用楼主chenqu6721的回复:

C#开发ActiveX求助...引用了一个第三方的dll,编译通过了。安装包制作安装,通过ie调用的时候调用ActiveX没有引用到第三方dll的方法都可以正常使用,引用到第三方dll的方法调用都没反应,感觉是第三方dll没有加载到,但是我dll跟ActiveX放的同个目录,网上找了好多方法,试过把第三方dll复制到windows、system32、浏览器根目录下都没有用。请高手指点.

有具体的代码吗?我参考下
解决方案四:
做ActiveX需要关注的点,很多。我曾经有个流水账的经验总结,你注意其中的一些关键字,自己百度看看-------------本机可以使用:1、因为加了这个[assembly:AllowPartiallyTrustedCallers()]有问题,反而不能显示,所以删除了设置部署到其他电脑不能使用:1、检查是否是IE配置问题(其实最后发现,在代码的处理到位的情况下,并不需要特别的配置IE)2、检查AllowPartiallyTrustedCallers问题2.1、本机不能用,用了会出错2.2、但如果确定是这个问题,那必须得先解决这个问题2.3、先撇开本地不能用的问题,先看部署客户端后的情况。结果发现运行出错-》ActiveX安全性问题,在构造函数中初始化,是不允许的2.4、因此,将构造函数初始化代码,放到Initial()中实现:提早实现2.5、又发现新的问题,还是出错,结果发现,是Activx引用的所有其他dll,都必须定义为AllowPartiallyTrustedCallers()2.6、终于,部署的客户端不出错了。同时开发环境下运行,也能正常运行了(原来是设置了AllowPartiallyTrustedCallers就出不来UI,现在可以了)2.7、但在部署的客户端,仍然不行,UI出不来2.8、然后猜测,会不会是引用了其他dll,而其他dll也需要注册?基于此,我专门做了一个独立的Test程序,就一个dll,最终结果是:一样不行2.9、没办法了,然后是狂翻帮助,在csdn上找,试图找到解决方法,过程中,发现了一些后来证明对我有用的东西,但当时并没觉得有什么用处,是ComRegisterFunctionAttribute3.0、继续baidu,发现基本上网上的解决方案,都不难。为什么他们能行,我就不行?3.1、卡住了,还有什么办法?降低版本试试,使用vs2008测试,这样更接近网络上介绍的方法,也就是有Setup安装包制作。这样可以对比看,SetUp安装包有没有特别之处?3.2、发现用vs2008+Setup安装包,可行!终于有重大突破。尝试不用Setup包,还是用原来的Regasm方式,发现也和一样不行!3.3、现在问题转变为:Setup安装包里,有什么特殊的,和我用RegAsm不同?3.4、找msi解析功能Orca,解析其中注册表的部分,和RegAsm写入注册表的有什么不同?发现不同在于少了CodeBase定义3.5、手工把CodeBase加上,正常了!此处该欢呼!3.6、现在在回想baidu上看到的几种方案,一切问题似乎都明白了。网上两类方案都行,而我不行的原因3.7、新问题来了:如何在注册表补充注册?这让我回想起baidu到的另外一个帖子,里边将Excel的ActiveX中,如何补充注册表的事情,用到了ComRegisterFunctionAttribute3.8、似乎理论上,不用ComRegisterFunctionAttribute也行,但这可能存在两个风险,一个是不用它复杂度增加,因为通过类本身注册有传入参数Type,带入了一些数据,方便注册表项定位,二是,一般程序去控制注册表,在win7下,非管理员是会被限制权限的3.9、决定使用ComRegisterFunctionAttribute,研究Registry对象的一些方法,定义注册/反注册的方法,搞定4.0、使用增加这两个补注册方法的dll,在vs2008下和vs2012下制作的Activex均有效。搞定!4.1、后注:代码权限问题;定义AllowPartiallyTrustedCallers和AllowPartiallyTrustedCallers未生效时,加载控件在IE上的表现不同,提示插件时,一个在上一个在下

时间: 2024-11-02 01:20:40

C#开发ActiveX求助...引用了一个第三方的dll,编译通过了。安装调用的时候调用不到这个dll的相关文章

又一个不错的FCKeditor 2.2的安装、修改和调用方法_网页编辑器

忽然发现自己 Blog 的 FCKeditor 无法使用,好惊讶!居然看好的 PJBlog 也会有不行的时候.马上到网上查找,把一些主要的东西 Copy 了下来.以下是主要内容FCKeditor的官方网站:www.fckeditor.com 和其他脚本类的程序一样,FCKeditor 的安装其实就是源代码的拷贝. 我们按照官方的方法,在网站根目录下建立 FCKeditor 这样一个文件夹, 然后把下载下来的文件包释放到该文件夹中. 只对一般的使用(ASP环境)进行配置和源文件的精简. 1.默认语

布局-在安卓开发中,如何在一个Activity中引用另一个Activity的XML文件?

问题描述 在安卓开发中,如何在一个Activity中引用另一个Activity的XML文件? 如题,我想在Activity1中通过点击Button来显示Activity2中的布局,要如何做到?求高手帮忙,谢谢大家 解决方案 在Android中常通过Intent进行Activity间的跳转.数据传递等,可在Button的onClick事件中通过Intent启动Activity2. 通过Intent进行Activity跳转,如下: Intent intent = new Intent(this, A

C#开发ActiveX控件问题求助,200分奉上!

问题描述 这个地址有介绍用C#开发ActiveX控件的例子http://archive.cnblogs.com/a/2180781/具体如下图,我按照这个方法做的,怎么在网页里显示不出它的内容呢?有没有人给指点一下,一旦解决,另外开贴附送100分. 解决方案 解决方案二:在DLL的工程属性中要公开COM解决方案三:引用1楼dylike的回复: 在DLL的工程属性中要公开COM 这个已经设置过了解决方案四:有没有高手给指点指点解决方案五:贴出你的代码看看啊,你是不是没有生成新的GUID呢?以前写过

使用VS2010 C#开发ActiveX控件(上)_C#教程

 要开发Web版的读卡程序,大体思路如下: 1.       使用C#对原始的Dll进行封装,这里要封装两部分内容,一部分是串口通信的功能,一部分是对卡读写的功能. 2.       开发ActiveX控件调用封装后的Dll,使用串口通信来对卡进行读写. 3.       打包并发布ActiveX控件. 4.  使用ActiveX控件. 思路1中封装代码有2个类SerialInterfaceHelper,串口通信的帮助类,MifareOneHelper,M1卡的读写帮助类,我们放在了项目Card

使用VS2010 C#开发ActiveX控件

最近做读卡器的B/S应用程序开发,由于读卡器厂商提供的手册都是C/S版本的,而且只有一个原始的Dll包,并没有web版的,那么就只好自己动手,丰衣足食了 要开发Web版的读卡程序,大体思路如下: 1. 使用C#对原始的Dll进行封装,这里要封装两部分内容,一部分是串口通信的功能,一部分是对卡读写的功能. 2. 开发ActiveX控件调用封装后的Dll,使用串口通信来对卡进行读写. 3. 打包并发布ActiveX控件. 4. 使用ActiveX控件. 思路1中封装代码有2个类SerialInter

C#开发ActiveX控件操作指南

C#开发ActiveX控件在开发Web页面中是十分有用的,下面提供了C#开发ActiveX控件操作指南,供大家学习参考. 0. 前言 ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中.使用ActiveX插件,可以轻松方便的在 Web页中插入多媒体效果.交互式对象以及复杂程序等等. 通常使用C++或VB开发ActiveX控件,本文探讨一下在Visual Studio 2005环境中使用C#开发ActiveX控件的技术实现. 1.

activex-C#开发ActiveX控件调用dll文件时,dll文件放在什么位置,我的出错了

问题描述 C#开发ActiveX控件调用dll文件时,dll文件放在什么位置,我的出错了 通过c#谢了一个很简单的Activex控件,调用dll文件(dll文件是c++写的,并且dll文件不是com组件),在普通的容器中调用动态库都没问题,但是通过activex时就会出错,请问这是问什么,请留言,也可以加我qq:574225218 解决方案 在dll文件中调用VBA的命令 解决方案二: 是在IE中测试出错么?尝试把浏览器的安全等级设置全部调到最低,在客户端安装.net framework并且运行

求助C# 把一个长度为1026×512的byte型数组 拆分为512个长度为1026的数组

问题描述 求助C#把一个长度为1026×512的byte型数组拆分为512个长度为1026的数组其中1026长度的最后两个1025和1026为顺序标记位(我已经设置好的)再按照顺序标记,重新组成个长度为1024×512的一个数组(这里的1024是把每个1026最后两个顺序位置删除) 解决方案 解决方案二:贵求大神啊---刚开始搞C#不是很会啊解决方案三:顺序标记就是从0数到511啊解决方案四:for(i=0;i<512;i++){byte[]b=newbyte[1026];for(j=i*102

activex-C#开发ActiveX控件调用动态库DLL

问题描述 C#开发ActiveX控件调用动态库DLL 我想开发一个C# ActiveX控件调用动态库DLL,能够在网页中使用,创建ActiveX控件我已经完成了,但调用DLL动态库没有相应的反馈给我,就像没有做任何操作一样,网上说把动态库DLL放到windows/System32下面,可以调用成功,但我照做了,还是没有反应,我的系统是WIN732位,动态库DLL在C/S程序下调用是没有问题,希望高人帮忙解答下,如果对问题有什么不明白之处,可以留言,谢谢 解决方案 ActiveX控件需要注册(命令