none
asp.net 里怎样调用 ocx啊?????? RRS feed

  • 问题

  • 我要在asp.net 的cs 文件里调用 vc++写的ocx?

    通过工具箱里的com,和项目引用自动引用到了项目下,并且自动在项目的文件夹下自动添加了bin目录,并有了 Interop.ICCARDREADERLib.dll  奇怪的是在delphi里调用的时候,它会自动加到控件里去,但在.net下,怎么都不会出现在控件面板上),我是这样调用的

     IcCardReader ocx1 = new  IcCardReader();
      string str= ocx1.piccread1str();

    这样编译可以通过,但运行到第二句的时候,即我在调用这个对象的方法的时候在客户端和服务器都会提示错误,而且提示灾难性的错误!!!

    请高手指点啊!本人万分感激!!!!!!我是搞很久都弄不明白要如何去调用?而且问了很多QQ群朋友都不能解决这个问题?

    • 已移动 孟宪会Moderator 2010年5月19日 9:34 (发件人:.NET Framework 一般性问题讨论区)
    2010年5月19日 4:47

答案

  • 一般ActiveX在没有ActiveX容器的情况下是不能工作的。另外ASP.Net默认是MTA而大多数ActiveX需要STA。建议另开一个Windows Forms程序来调用这个ActiveX的功能。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月19日 18:45

全部回复

  • 是什么灾难性错误?我建议你可以贴图(QQ截图)。

    或者您先尝试以下一些步骤:

          一.对生成的DLL文件进行注册(在CMD 中 regsvr32 存放DLL文件地址)。
      二.然后在项目中对DLL进行引用,具体的不详细说明。
      三.引用之后在控件栏中你将会看到你刚才添加的控件,直接拖到页面上。
      四.就是调用控件中的属性、方法、函数。

    2010年5月19日 8:05
  • 一般ActiveX在没有ActiveX容器的情况下是不能工作的。另外ASP.Net默认是MTA而大多数ActiveX需要STA。建议另开一个Windows Forms程序来调用这个ActiveX的功能。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月19日 18:45