当前位置:编程学习 > C#/ASP.NET >>

C#无法调用OCX控件,哪位大牛帮看看!

小弟对OCX原理等不熟,只知是ActiveX的一种,对于C#调用OCX也只是简单知道一点,但现在有一个OCX控件却无法调用,网上搜索了很多都是无法解决,包括了以下两方式:
第一方式:手动管理员CMD下regsvr32注册,再用aximp来生成dll供VS2010调用;可以正常注册,但用aximp时会提示如下的错误信息:
“AxImp 错误: 加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOA
DLIBRARY))”
第二种方式:在VS2010中以添加控件的方式来导入该控件,控件可以导入到工具箱中,如下图所示:

但将其(工具箱中的那三个都试过)施放到WinForm界面时却出现如下图的提示

而且也试过先注册,再重新执行该种(即第二种)方式,同样出现上边的情况。

此时注意到了项目右边的该OCX的两个引用打着“!”号,如下图所示:


哪位大牛能帮忙的或是有想挑战一下如何解决此问题的大侠,可以去我的网盘下载该OCX控件然后自己调试下看看:http://qty201301.ys168.com/(文件夹“C#无法调用的OCX下载”里面放的压缩包就是了)

能帮忙解决此问题的,小弟不成敬意,100分送上! 大牛在哪里啊?? 控件 OCX控件 C#调用OCX OCX控件 C#调用OC控件 C#无法调用OCX控件 --------------------编程问答-------------------- 之前不要做任何操作
在工具箱中右键,添加工具箱项,浏览到ocx,添加。

再不行,就是你控件的问题了。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
之前不要做任何操作
在工具箱中右键,添加工具箱项,浏览到ocx,添加。

再不行,就是你控件的问题了。

不行的,一开始就是这样弄,你可以自己下载来试下。控件没问题的,因为这个IE是可以调用的 --------------------编程问答-------------------- 应该是还少了文件 --------------------编程问答-------------------- 控件问题吧。 --------------------编程问答--------------------
引用 3 楼 zhoumeiwen 的回复:
应该是还少了文件

但安装完后就只有这个OCX,和一个卸载程序以及一个setup.log,如下图所示:

但奇怪是setup.log用记事本打开来却是乱码,估计是加了密的。
原安装包我也上传至网盘(http://qty201301.ys168.com)了,名称就叫“OCX的源安装程序.zip”,你可以下载来安装看看。
同时,该OCX控件是用在这个网站的(http://www.fjgat.gov.cn/zzxh.html),哪位懂的人可以去试试看 --------------------编程问答-------------------- 很可能是楼上分析的问题 --------------------编程问答-------------------- AnyCPU,x86?? --------------------编程问答-------------------- 这个ocx用到了ieshims.dll, 试下把这个ocx拷贝到C:\Program Files\Internet Explorer目录下,然后以管理员身份运行cmd,再regsvr32 TmriPlate.ocx --------------------编程问答-------------------- 请用x86编译。。 --------------------编程问答--------------------
引用 8 楼 jshi123 的回复:
这个ocx用到了ieshims.dll, 试下把这个ocx拷贝到C:\Program Files\Internet Explorer目录下,然后以管理员身份运行cmd,再regsvr32 TmriPlate.ocx

你没明白的意思,我是说在C#项目里调用这个OCX控件,不是要在IE里运行,我一开始应该说得很清楚啊,IE是可以调用这个的,只要用源安装程序安装好了之后(安装之时它会自动注册,所以就不需要手动注册),在IE中打开这个网站(http://www.fjgat.gov.cn/zzxh.html),这个网站需要用到这个控件。
问题是我要在C#项目里调用这个OCX控件,但却调用不了! --------------------编程问答-------------------- 注册成功后添加COM引用,选C:\Program Files\Internet Explorer\TmriPlate.ocx就可以了。 --------------------编程问答--------------------
引用 9 楼 wyd1520 的回复:
请用x86编译。。

x86也不行!再说了都还没编译,连Winform界面都不能导入调用,如何编译运行啊?  --------------------编程问答-------------------- 难道没有懂的高手难解决一下此问题吗?如果觉得分数不够的我可以增加,只要你能解决这个问题!! --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
之前不要做任何操作
在工具箱中右键,添加工具箱项,浏览到ocx,添加。

再不行,就是你控件的问题了。


我就是这么做的,ocx控件就可以用了,再不行就是你的ocx控件有问题 --------------------编程问答--------------------
引用 13 楼 qty2008 的回复:
难道没有懂的高手难解决一下此问题吗?如果觉得分数不够的我可以增加,只要你能解决这个问题!!


如果你的控件没有源代码,并且自身有问题。

没有人有义务“懂”。除非你能开出足够高的价码,为你这个从技术上看毫无意义的东西买单。 --------------------编程问答--------------------
引用 15 楼 caozhy 的回复:
Quote: 引用 13 楼 qty2008 的回复:

难道没有懂的高手难解决一下此问题吗?如果觉得分数不够的我可以增加,只要你能解决这个问题!!


如果你的控件没有源代码,并且自身有问题。

没有人有义务“懂”。除非你能开出足够高的价码,为你这个从技术上看毫无意义的东西买单。

我觉得你的语气怎么好像很伤人,难道论坛不是用来讨论及询问题的地方吗?还是我说这句话刺伤你?你自认为是高手,但此问题你又解决不了,所以你羞成怒?还亏你是版主。你先说你会不会? 你要是真的牛B懂的话而又想要钱才会做的话你可以私下M我开个价!不懂的话就不要装懂或是在旁边说风凉话,在一边看别人讨论就行了,否则不要让我投诉你这版主没有一点素质。难道csdn的版主是这么没素质的吗?
好了,话说回来,针对问题,我再说明一点:
调用这个跟代码没关系,只要你能在C#项目里调用就行,哪怕你只是简单新建一个Winform,然后第一时间调用这个OCX控件,只要能调用就行!我上面问题应该描述得很清楚的吧?如果觉得哪里不够清楚的可以提出来,我连该控件的源安装程序都放在网盘上了,也包括了用到该控件的网站(http://www.fjgat.gov.cn/zzxh.html),我再强调一次说,IE调用该控件是没问题的,所以控件应该是没问题的,只是不明白为什么C#调用不了,是哪里有限制或是需要其它什么额外的动作,因为不懂所以才来问的,如果有高手懂私下M我也行。 --------------------编程问答--------------------
引用 14 楼 dugushanchuan 的回复:
Quote: 引用 1 楼 caozhy 的回复:

之前不要做任何操作
在工具箱中右键,添加工具箱项,浏览到ocx,添加。

再不行,就是你控件的问题了。


我就是这么做的,ocx控件就可以用了,再不行就是你的ocx控件有问题

我知道,这是最简单最直接的做法,但问题该控件不行,但你说的OCX控件有问题,我觉得应该没问题,因为很简单,IE是可以加载该控件的。我不知道是控件用了什么技术手段使用得除了IE之外的程序不能调用了。我的OS是Win8专业版的,不知是否跟系统有关(按道理应该是跟系统没关系的)?接下来我想弄个XP系统再运行VS看看能不能调用。 --------------------编程问答-------------------- 楼主 IE是什么C#.net又是什么?你连这个都没区分清楚,那你拿什么保证IE能调用的ocx控件C#编译器就一定能注册?
--------------------编程问答-------------------- 我给你一段python的代码你拿去VS里面编译看看好不好?什么,你说编译报错?!那为什么会编译报错呢?我用pythonIDE可以很好的编译啊,这说明这段代码没问题,我不知道这段代码用了什么功能让除了pythonIDE外的程序都无法编译……

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,