我最近写了一个ACTIVEX控件,将在(VC、VB、DELPHI和PB)中使用。在DELPHI中调用接口时,不会出错。在其他语言中调用接口时就出现了不支持的参数类型,特别是字符串类型。例如DELPHI中的PCHAR在VB中就不支持。
作过类似的朋友和懂的COM编程的朋友,给点意见和帮助。
说说我还应该注意哪些方面的参数类型定义,我字符串类型应该怎么定义。
谈谈,DELPHI中哪些类型是无语言相关性的。
怎样才能作一个通用性很强的控件。

解决方案 »

  1.   

    COM 支持 BSTR。Delphi 里对应的类型是 WideString,VB 内置的字符串类型其实就是 BSTR。在 COM 里面使用 PChar 类型不太妥当,因为它不被 Ole Automation 支持,还要自己写 Proxy/Stub dll 来进行列集。
      

  2.   

    在其它语言中用的话参数一定要定义成WINDOWS通用的类型,而不能是DELPHI的数据类型,这样会不兼容地!
      

  3.   

    关于兼容性问题...
    只要不怕太慢,类型都用variant吧
      

  4.   

    我在创建接口里面参数类型设置为LPSTR他在DELPHI中对应的就是PCHAR。
    除了字符串类型之外,其他类型应该注意什么?
    有没有WINDOWS通用的类型在各个语言(VB、VC、DELPHI和PB)中对照表。
    就比如:BSTR 在Delphi 里对应的类型是 WideString,VB 是 BSTR,VC是WideString.
    大家帮我列一列。
      

  5.   

    leapmars(流铭)果然是高手!
    並不是指針的問題,在VB中如果是PChar的話,直接使用STRING類型就可!