В неуправляемом C++ DLL У меня есть функция, которая принимает постоянное std::string
в качестве аргументаManaged C++ станд :: строка не доступна в неуправляемом C++
Prototype : void read (const std::string &imageSpec_)
Я называю эту функцию из С DLL управляемом ++ пропусканием std::string
.
Когда я отлаживаю неуправляемый код C++, параметр imageSpec_
показывает значение правильно, но не позволяет мне копировать это значение в другую переменную.
imageSpec_.copy(sFilename, 4052);
Он показывает длину imageSpec_
как 0 (ноль).
Если я пытаюсь копировать, как std::string sTempFileName(imageSpec_);
, эта строка оператора new string является пустой строкой.
Но для std::string sTempFileName(imageSpec_.c_str());
эта строка инструкции копируется правильно. т. е. с символьной строкой копируется правильно.
Копирование этого способа потребует значительного изменения неуправляемого кода на C++.
Я создаю неуправляемый код в Visual Studio 6.0 и управляемый C++ в Visual studio 2008.
Есть ли какой-либо конкретный параметр или изменение кода в управляемом C++, который решит проблему?
Является ли это «Управляемый C++» или C++/CLI? – xyz
Вы уверены, что поддерживаются смешение объектов VC++ 6.0 и VC++ 2008? – AProgrammer