在非托管 c++ dll 中,我有一个以常量std::string
为参数的函数
Prototype : void read ( const std::string &imageSpec_ )
我通过传递一个std::string
.
当我调试非托管 c++ 代码时,参数imageSpec_
正确显示值,但不允许我将该值复制到其他变量中。
imageSpec_.copy( sFilename, 4052 );
它显示长度imageSpec_
为 0(零)。
如果我尝试像std::string sTempFileName(imageSpec_);
这个语句字符串一样复制新字符串是一个空字符串。
但是对于std::string sTempFileName(imageSpec_.c_str());
这个语句字符串被正确复制。即带有字符指针的字符串被正确复制。
以这种方式复制将需要对非托管 c++ 代码进行重大更改。
我在 Visual Studio 6.0 中构建非托管代码,在 Visual Studio 2008 中构建托管 c++。托管 c++ 中
是否有任何特定设置或代码更改可以解决该问题?