■7405 / inTopicNo.4) |
Re[3]: VB.NETからVisual C++にchar*型を渡す方法 |
□投稿者/ Blue 准尉(103回)-(2006/10/10(Tue) 18:03:43)
|
分類:[.NET 全般]
どうせならば、C++/CLI側で文字列を作って返すようなつくりにしたほうがよさそう。 で、strcpyやsprintfを使うところだけ局所的にchar型配列を使うとか。
System::String^ s = "1234";
// sを使って文字列を作る。 char buff[ 256 ]; IntPtr p = System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(s)
sprintf( buff, "%IDは %s です。", static_cast< const char* >( p.ToPointer() ) ); System::String msg( buff ); MessageBox::Show( buff );
System::Runtime::InteropServices::Marshal::FreeHGlobal(p);
※VBは基本的にUnicode(UTF16?)ですので、strcpyやsprintfではなく、wchar_t型用の wcscpyやswprintfを使ったほうがやりやすいです。 (Marshal〜を使わないで、PtrToStringCharsでconst wchar*型が取得できる) 参考 http://support.microsoft.com/kb/311259/ja
|
0
|