问题,代码如图片所示

解决方案 »

  1.   

    CString的内存空间是预分配的,如果空间不够,会重新分配内存空间。既然version的大小已定,sVersion在传入前是不是可以指定下大小呢。
      

  2.   

    DLL接口参数使用的CString类对象?
      

  3.   

    DLL导出的函数,如果不是同一个编译器尽量用基本的数据类型,比如char*,WCHAR*等,CString,string每个编译器实现是不一样的!那么他们的内存结构就不一样,崩溃是早晚的事情
      

  4.   

    sVersion=Versionch;
      

  5.   

    CString( LPCSTR lpsz );
    throw( CMemoryException );什么 “不行的”?
      

  6.   

    VC6做的DLL, 如果不能修改DLL, 那可以试试把工程用VC6编译, 一般相同版本的编译器编译的相互间的兼容性会比较好
    或者VC6再做一个DLL 重新封装下原来的DLL
      

  7.   

    这层必须用2010,就是说必须用2010调vc6生成的,上层又必须是vc6调这层2010的,不能变更,哈哈
      

  8.   

    这样写的前提是同一个编译器,所以我们如果要这么写,一定是带源码而不仅仅是一个DLL
      

  9.   

    参考下面,看看对你是否有帮助:
    http://www.cnblogs.com/cnmyp/archive/2011/04/03/2004177.html