以CString为参数的接口函数只有MFC程序才会支持。建议改用VARIANT或者BSTR做接口

解决方案 »

  1.   

    用VC再封装一个DLL来转一下,至少能解决你目前问题.
      

  2.   

    VC的接口改动工作量太大,时间来不及。
    最初也考虑再用一个DLL转一下,但因为内部工作的原因,还是想尽量用其他方法解决。
      

  3.   

    这几天我在用DELPHI7.0编写程序去调用VC++6.0的DLL,DLL是用MFC做的,在调用过程中遇到许多兼容性问题:(1)DELPHI的 String与VC的CString不兼容,造成调用以CString为参数的接口函数失败,总是提示访问0地址出错。
    ---------------------
    VC里面不用CString,而用STL的string. 用Delphi的PChar类型接string.c_str();这样应该没有问题。或者传递char[],CString可以转成char[]。(2)DELPHI的浮点型数组竟然与VC的浮点型数组也不兼容。
    ---------------------
    这个我没有遇见。(3)在避开上述相关函数的调用,勉强调用其他函数成功的情况下,在退出DELPHI的主程序时,有时会提示访问非法地址的错误。
    ---------------------
    似乎是没有释放资源的问题。特别是作为参数传递的数组,最好是在Delphi里面创建,然后在Delphi这边释放。(个人习惯)
      

  4.   

    CString是MFC独有的数据类型,在其他语言中不可能识别。使用标准类型作为参数,例如BSTR和VARIANT。
      

  5.   

    或者有什么其他的办法?因为那些VC的DLL是无法在短时间内改动的,而且又要赶工期。有什么快速的办法可以解决吗?
      

  6.   

    或者有谁知道CString的内存分配情况?如果知道这个就应该能做了吧。
      

  7.   

    或者有什么其他的办法?因为那些VC的DLL是无法在短时间内改动的,而且又要赶工期。有什么快速的办法可以解决吗?