Problem polega na tym, że textBox2->Text
jest typu System::String
, a standardowe strumienie spodziewają się std::string
albo C-stringów.
Można przekonwertować String na string albo użyć funkcji z .Net Framework, które operują na klasie String
.
using namespace System;
using namespace System::IO;
int main()
{
String ^s = L"Ala ma kota";
TextWriter ^tw = File::CreateText(L"ala.txt");
tw->WriteLine(s);
delete tw;
}
a konwersję stringów robimy tak:
#include <string>
#include <msclr/marshal_cppstd.h>
using namespace System;
using namespace std;
using namespace msclr::interop;
int main()
{
String ^s1 = L"ala ma kota";
// konwersja String -> string
string s2 = marshal_as<string>(s1);
// konwersja string -> String
String ^s3 = marshal_as<String^>(s2);
}
Nie zadziała w Visual C++ 2008 Express — brakuje nagłówka.
Zadziała w VS 2008 Pro, oraz 2010 i 2012 (także Express).