C++/CLIで『System::String ^』から『char*』に変換する方法
Wed.16.01.2008 Posted in コンピュータ
#include <stdlib.h>
#include <stdio.h>
#include <vcclr.h>

int main(array<System::String ^> ^args)
{
    System::String ^ str = "test";

    pin_ptr<const wchar_t> wch = PtrToStringChars(str);
    size_t convertedChars = 0;
    size_t sizeInBytes = ((str->Length + 1) * 2);
    errno_t err = 0;
    char* ch = (char *)malloc(sizeInBytes);
    err = wcstombs_s(&convertedChars, ch, sizeInBytes, 
        wch, sizeInBytes);
    if (err != 0)
        printf_s("wcstombs_s failed!\n");

    printf("%s\n", ch);

    return 0;
}


CLIとCLRの違い
CLIのマイクロソフトの実装をCLRと呼ぶ。.NET FrameworkはCLRにその他ライブラリ群を加えたものと言える。

.NET Framework - Wikipedia

参考
方法 : System::String を wchar_t* または char* に変換する

Tag: プログラミング .Net C++

関連エントリー


« Javaで複数のソースファイルをコンパイルしJarでまとめ、実行するまでのメモ | Home | パンダのうた »

comments

コメントの投稿


管理者にだけ表示を許可する

trackback


この記事にトラックバックする(FC2ブログユーザー)

topBack to TOP