06/12/04 17:10:58
>>181お前それC++/CLIではなく、マネージドC++だろ。
とりあえず、こうすると.NET 2003の/clrと2005の/clr:OldSyntaxで動く(実行するとaaaしか表示されない)。
#using <mscorlib.dll>
#include <vcclr.h>
#include <windows.h>
#pragma comment(lib, "user32.lib")
void func (System::String* str1, System::String* str2, System::String* str3) {
using System::String;
String* str;
str = String::Concat(str, str1);
str = String::Concat(str, S"\0");
str = String::Concat(str, str2);
str = String::Concat(str, S"\0");
str = String::Concat(str, str3);
str = String::Concat(str, S"\0");
str = String::Concat(str, S"\0");
const wchar_t __pin* p = PtrToStringChars(str);
::MessageBoxW(0, p, L"", MB_OK);
}
int main()
{
func("aaa","bbb","ccc");
}
まあAPIの相手をするならchar配列のほうが楽。
>>187 せめてsprintf使え。あとLPTSTRをマルチバイト文字列に使うな。