我用VB编的ActiveX DLL,VB自己调用毫无问题,可在VC和Delphi中都调用不了,VC中报是无法识别的组件,Delphi中报是找不到函数入口点。难道VB只能自己给自己编组件玩么?!

解决方案 »

  1.   

    dll用VC做吧. VB的DLL其他是不能调用的
      

  2.   

    vb中的dll与其他的dll有点不同,其他的dll就是平常意义的dll,向其他程序提供函数调用。而在vb中生成的dll是一个COM组件,类似于控件,所以vb中的dll称为ActiveX dll,还有一个叫做ActiveX exe的,其实也是一个COM组件,它与ActiveX dll的不同点就在于ActiveX exe有自己的进程地址空间,而ActiveX dll没有自己的进程地址空间,它在调用程序的地址空间中运行。
      

  3.   

    这些我也知道,但是ActiveX是微软的标准啊,VC和Delphi也可以做ActiveX dll的,难道这些ActiveX dll接口还不一样么?VB编的其他都调不了,而VC编的ActiveX dll就可以。
      

  4.   

    其实各种语言写的dll之间互相调用的时候就是一个类型兼容/转换的问题vb写的时候尽量都用byval关键字声明参数是有必要的。你可以修改看看。
    我没有用过期他的环境调用
    但是我用asp调用的时候大多数都是这个错误。
      

  5.   

    标准的DLL 是 WIN32 DLL.