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

解决方案 »

  1.   

    这是比较常见的问题,其实lz不用着急,上网查查vc和delphi的对应类型就可以
    vc的cstring  ,lz在delphi中用pchar 看看
      

  2.   

    VC的接口改动工作量太大,时间来不及,能改正一下DELPHI的接口吗?
      

  3.   

    不行,必须改接口。MFC类作为参数的话,只有使用同一版本的MFC库的程序才可以识别。
      

  4.   

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

  5.   

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

  6.   

    或者有什么其他的办法?因为那些VC的DLL是无法在短时间内改动的,而且又要赶工期。有什么快速的办法可以解决吗?或者有谁知道CString的内存分配情况?如果知道这个就应该能做了吧。
      

  7.   

    PCHAR或者CHAR *都行吧,因为我就做了一个这样的,没问题
      

  8.   

    问题出在接口上,应该使用初级的参数类型,如CString这样的必然会有问题,因为它太高级了,处理字符串还是用指针 char* 。
    我想到的应急的方法是这样(我没有这方面的尝试,仅供参考), 用VC再写一个dll,用这个dll调用你原来那个MFC的dll,新的dll的功能就是处理接口问题,将接口的参数类型平民化写成c语言兼容的,这时的转换你还可以使用MFC,因为将麻烦的类型转换问题消化在MFC的内部了,z这时新的dll的接口 一定要使用诸如 char* int 之类初级的c类型,不要用CString之类的东东了。
      

  9.   

    这个东西我做过,不行吧,类型不兼容,最后把delphi改用C++ builder了
      

  10.   

    C++builder有类型可以与VC的CString兼容吗?
      

  11.   

    如果有vc dll的源程序的话,很简单啊,把参数改成char *,函数里把变量传递一下。可能你是没有源程序,才这么麻烦。呵呵