String^ とのやり取りが一番の問題。
ASCIIコードへの変換自体はEncoding^でだが、using namespace System::Text;
String^ unicodeString = "test"
array^unicodeBytes = unicode->GetBytes( unicodeString );
array^asciiBytes = Encoding::Convert( unicode, ascii, unicodeBytes );
array^asciiChars = gcnew array(ascii->GetCharCount( asciiBytes, 0, asciiBytes->Length ));
ascii->GetChars( asciiBytes, 0, asciiBytes->Length, asciiChars, 0 );
ASCIIコードをString^にするほうは、
array^asciiChars = gcnew array(1);
int i = 'B';
asciiChars[0] = i;
String^ asciiString = gcnew String( asciiChars );
↑ここが肝でgcnewでインスタンスを作成して渡さないと例の「System::StringがSystem::String^に変換できません」が出る。
arrayにして渡さないとやはり変換できないが、arrayにしとけば配列数も自動取得。もっとも配列数より短い文字列の場合は\0で止めないとね。
そんで頑張ると、MFC依存は無くなるけど.NET Frameworkには依存する(w |