06/12/04 17:04:51
ミスった・・・
voidfunc(String*str1,String*str2,String*str3){
LPTSTR pArg;
LPTSTR pStr1=(LPTSTR)Marshal::StringToHGlobalAnsi(str1).ToPointer();
LPTSTR pStr2=(LPTSTR)Marshal::StringToHGlobalAnsi(str2).ToPointer();;
LPTSTR pStr3=(LPTSTR)Marshal::StringToHGlobalAnsi(str3).ToPointer();;
int len=0;
len+=lstrlen(pStr1);
len+=1;
len+=lstrlen(pStr2);
len+=1;
len+=lstrlen(pStr3);
len+=1;
len+=1;
pArg=(LPTSTR)malloc(len);
len=0;
memcpy(&pArg[len],pStr1,lstrlen(pStr1));len+=lstrlen(pStr1);
memcpy(&pArg[len],"\0",1);len+=1;
memcpy(&pArg[len],pStr2,lstrlen(pStr2));len+=lstrlen(pStr2);
memcpy(&pArg[len],"\0",1);len+=1;
memcpy(&pArg[len],pStr3,lstrlen(pStr3));len+=lstrlen(pStr3);
memcpy(&pArg[len],"\0",1);len+=1;
memcpy(&pArg[len],"\0",1);len+=1;
func(pArg);
free(pArg);
}