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

qty2008 2013-09-21 12:18:08
小弟对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分送上! 大牛在哪里啊??
...全文
858 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
苏璃 2015-11-28
  • 打赏
  • 举报
回复
不用Visual Studio Tools打包,直接反射动态创建 然后在通过Atl附加到Ole容器
LovevAnn 2015-11-27
  • 打赏
  • 举报
回复
不要用.NET4.0,用.NET3.5及以下就可以!
江湖评谈 2014-11-03
  • 打赏
  • 举报
回复
擦 ,本来说下载那个ocx试下,还要用户名, 还要注册,一看算了
江南小鱼 2014-11-03
  • 打赏
  • 举报
回复
1、在机器注册ocx控件 2、工具箱>添加项>COM组件,把ocx控件添加进来 3、把ocx添加到窗体
韩誉 2014-11-02
  • 打赏
  • 举报
回复
很同情楼主,楼主你要的功能是否可以临时换个开发工具? 我当时也没有解决好这个问题。第三方给的OCX实现的功能,我只能用delphi实现,再用管道通讯的方式给的C#的。 OCX开发针对平台的问题,也是这里的人交流也有问题
韩誉 2014-11-02
  • 打赏
  • 举报
回复
哈哈,OCX肯定没有问题。 我也遇到过。 同一个OCX在delphi、vb6就可以,但换到vs2010中的c#就报错了
  • 打赏
  • 举报
回复
我给你一段python的代码你拿去VS里面编译看看好不好?什么,你说编译报错?!那为什么会编译报错呢?我用pythonIDE可以很好的编译啊,这说明这段代码没问题,我不知道这段代码用了什么功能让除了pythonIDE外的程序都无法编译……
  • 打赏
  • 举报
回复
楼主 IE是什么C#.net又是什么?你连这个都没区分清楚,那你拿什么保证IE能调用的ocx控件C#编译器就一定能注册?
qty2008 2013-09-25
  • 打赏
  • 举报
回复
引用 14 楼 dugushanchuan 的回复:
[quote=引用 1 楼 caozhy 的回复:] 之前不要做任何操作 在工具箱中右键,添加工具箱项,浏览到ocx,添加。 再不行,就是你控件的问题了。
我就是这么做的,ocx控件就可以用了,再不行就是你的ocx控件有问题[/quote] 我知道,这是最简单最直接的做法,但问题该控件不行,但你说的OCX控件有问题,我觉得应该没问题,因为很简单,IE是可以加载该控件的。我不知道是控件用了什么技术手段使用得除了IE之外的程序不能调用了。我的OS是Win8专业版的,不知是否跟系统有关(按道理应该是跟系统没关系的)?接下来我想弄个XP系统再运行VS看看能不能调用。
qty2008 2013-09-25
  • 打赏
  • 举报
回复
引用 15 楼 caozhy 的回复:
[quote=引用 13 楼 qty2008 的回复:] 难道没有懂的高手难解决一下此问题吗?如果觉得分数不够的我可以增加,只要你能解决这个问题!!
如果你的控件没有源代码,并且自身有问题。 没有人有义务“懂”。除非你能开出足够高的价码,为你这个从技术上看毫无意义的东西买单。[/quote] 我觉得你的语气怎么好像很伤人,难道论坛不是用来讨论及询问题的地方吗?还是我说这句话刺伤你?你自认为是高手,但此问题你又解决不了,所以你羞成怒?还亏你是版主。你先说你会不会? 你要是真的牛B懂的话而又想要钱才会做的话你可以私下M我开个价!不懂的话就不要装懂或是在旁边说风凉话,在一边看别人讨论就行了,否则不要让我投诉你这版主没有一点素质。难道csdn的版主是这么没素质的吗? 好了,话说回来,针对问题,我再说明一点: 调用这个跟代码没关系,只要你能在C#项目里调用就行,哪怕你只是简单新建一个Winform,然后第一时间调用这个OCX控件,只要能调用就行!我上面问题应该描述得很清楚的吧?如果觉得哪里不够清楚的可以提出来,我连该控件的源安装程序都放在网盘上了,也包括了用到该控件的网站(http://www.fjgat.gov.cn/zzxh.html),我再强调一次说,IE调用该控件是没问题的,所以控件应该是没问题的,只是不明白为什么C#调用不了,是哪里有限制或是需要其它什么额外的动作,因为不懂所以才来问的,如果有高手懂私下M我也行。
threenewbee 2013-09-24
  • 打赏
  • 举报
回复
引用 13 楼 qty2008 的回复:
难道没有懂的高手难解决一下此问题吗?如果觉得分数不够的我可以增加,只要你能解决这个问题!!
如果你的控件没有源代码,并且自身有问题。 没有人有义务“懂”。除非你能开出足够高的价码,为你这个从技术上看毫无意义的东西买单。
dugushanchuan 2013-09-24
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
之前不要做任何操作 在工具箱中右键,添加工具箱项,浏览到ocx,添加。 再不行,就是你控件的问题了。
我就是这么做的,ocx控件就可以用了,再不行就是你的ocx控件有问题
qty2008 2013-09-24
  • 打赏
  • 举报
回复
难道没有懂的高手难解决一下此问题吗?如果觉得分数不够的我可以增加,只要你能解决这个问题!!
qty2008 2013-09-24
  • 打赏
  • 举报
回复
引用 9 楼 wyd1520 的回复:
请用x86编译。。
x86也不行!再说了都还没编译,连Winform界面都不能导入调用,如何编译运行啊?
jshi123 2013-09-24
  • 打赏
  • 举报
回复
注册成功后添加COM引用,选C:\Program Files\Internet Explorer\TmriPlate.ocx就可以了。
qty2008 2013-09-24
  • 打赏
  • 举报
回复
引用 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控件,但却调用不了!
xuguv 2013-09-22
  • 打赏
  • 举报
回复
控件问题吧。
本拉灯 2013-09-22
  • 打赏
  • 举报
回复
请用x86编译。。
周美文 2013-09-22
  • 打赏
  • 举报
回复
应该是还少了文件
jshi123 2013-09-22
  • 打赏
  • 举报
回复
这个ocx用到了ieshims.dll, 试下把这个ocx拷贝到C:\Program Files\Internet Explorer目录下,然后以管理员身份运行cmd,再regsvr32 TmriPlate.ocx
加载更多回复(5)

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧