std::string
アンマネージ C++ dll には、引数として定数を取る関数があります
Prototype : void read ( const std::string &imageSpec_ )
この関数をマネージ C++ DLL から呼び出すには、std::string
.
アンマネージ C++ コードをデバッグすると、パラメーターimageSpec_
は値を正しく表示しますが、その値を他の変数にコピーすることはできません。
imageSpec_.copy( sFilename, 4052 );
の長さをimageSpec_
0(ゼロ)として表示します。
このステートメント文字列のようにコピーしようとするstd::string sTempFileName(imageSpec_);
と、新しい文字列は空の文字列になります。
しかし、std::string sTempFileName(imageSpec_.c_str());
このステートメントでは文字列が正しくコピーされます。つまり、charpointer 文字列は正しくコピーされます。
この方法でコピーするには、アンマネージ C++ コードを大幅に変更する必要があります。
Visual Studio 6.0 でアンマネージド コードをビルドし、Visual Studio 2008 でマネージド C++ をビルドして
います。この問題を解決するマネージド C++ の特定の設定またはコードの変更はありますか?