Blue Campus
ちょっとした記録

2006年11月23日

ある掲示板で、「String^型をchar型配列にするにはsprintfを使えばいい」というのを見ました。
実際試してみるとうまくいっているようには見える。

ただ、可変長引数にString^型を渡す?そんなのやっていいの?って疑問が出ました。

実験コード
#include <cstdarg>
#include <cstdio>

#pragma unmanaged

void test1( char* first, ... )
{
    char* letter = first;
    va_list args;
    
    va_start( args, first );
    
    while ( letter != 0 )
    {
        printf( "'%s'\n", letter );
        letter = va_arg( args, char* );
    }
    
    va_end( args );
}

#pragma managed

int main()
{
    System::String^ s = L"漢字ひらがなEIJI1234+/?";
    
    // 実験
    test1( "てすと", s, 0 );
    
    return 0;
}

var_arg( args, char* )のようにchar*型で受ければうまいこと変換されているのかなぁ。(なんでだろ?)
(ということで、swprintfは使えないようだ。)

posted @ 2:03 | Feedback (0)