我用vc++6.0写了一个单文档程序,程序中运用了多线程,在辅助线程中需要调用自己写的动态库函数,在动态库导出函数的形参中有一个CString类型变量,动态库需要用它来读数据库,程序运行时没问题,可我在动态库中跟踪形参值时发现其他的形参(非CString类型)有值,可是这个CString类型的形参无值,怎么回事啊,是不是VC函数中不能传CString类型值啊!!!!

解决方案 »

  1.   

    不要在DLL导出函数里面传递CString类型的参数,因为CString内置内存管理器,跨模块使用会出问题。你应该使用LPCTSTR来传递
      

  2.   

    可是我传CString类型实参给动态库时,虽然在动态库中跟踪时发现CString类型无值,可是动态库居然可以根据我传的数据库地址正确读取数据库!这是为什么呢???
      

  3.   

    请问五岭散人: 怎么转换的啊,能传进去么?
    我的程序不只一处用到CString类型,可是有时能传进去,有时又不能,我在动态库中单调时看不到传进来的值,
    出现:error::cannot display value是为什么啊?