ある掲示板で、「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は使えないようだ。)
投稿日時 : 2006年11月23日 2:03