我用.net写了一个类库,在delphi7中以com的形式调用。
这个com在vc,vb中都可以正常使用。
但是,在delphi7中报Arithmetic result exceeded 32 bits错误。
com: IMyComClassInterface;
com: = CoMyComClass.Create;
我的程序中就这两行代码。Note:类型库已经import.真是奇怪的问题。我用.net又写了一个简单的测试com,调用没有问题。
是不是这个com引用了.net的其他类库,都需要在delphi中import?
这个com大概有60多个类。

解决方案 »

  1.   

    Arithmetic result exceeded 32 bits
    算法结果超过32位帮你顶吧。
      

  2.   

    是不是用了什么delphi中不支持的类型?
      

  3.   

    我也不清楚。但在vc,vb调用都没问题。没用什么特殊类型。
      

  4.   

    在类实例化的时候就抱错了(Create).还没用到任何类型呢。
    我把mscorlib.pas, mscoree.pas都import了还是同样的错误。
    郁闷啊!已经好几天了,也不知道是哪的问题!!!
      

  5.   

    請問在Delphi 中怎麼調用Com  啊,
    我是剛學Delphi,我現有一個dll  ,想在 Delphi 中調用,但不知道該怎麼引用及創建。
    可另開帖給分.
      

  6.   

    可能是出现了什么DELPHI不支持的类型~!
    在vc,vb调用都可以那是因为都是微软的东西,所以当然兼容
    可DELPHI可不是他们的,所以可能问题就出在这里~!
      

  7.   

    最新发现:
    错误是在调用ActiveX中的CoCreateInstance时产生的。
    代码如下:
    CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or
        CLSCTX_LOCAL_SERVER, IUnknown, Result)
    用这个代码就提示上述错误。
    如果改成:
    CoCreateInstance(ClassID, nil, CLSCTX_LOCAL_SERVER, IUnknown, Result)
    就提示类没有注册。
    不知道有什么区别吗?to:bxh2dai(书虫&菜鸟) 
    如果类型不兼容,难道就没有办法了吗?是不是要自己定义Marshal?
      

  8.   

    我使用VC编写OCX可以在VB6或Delphi7上使用。但是我使用VB6
    编写的OCX在VC上可使用。但在Delphi7上载入后在ActiveX Panel中
    死活看不到,为什么?那位大虾帮帮我,感激不尽。
    我Email:   [email protected]