父进程如下调用(hThread是一个线程的句柄,想传递到子进程中),
//参数设置
char pParam[128] = {0};
int loc = 0;
//设置子进程
memcpy(pParam, "Child.exe ", sizeof("Child.exe ") - 1);
loc += sizeof("Child.exe ") - 1;
//设置线程的句柄
memcpy(pParam + loc, &hThread, sizeof(hThread));
loc += sizeof(hThread);
memset(pParam + loc, '\0', 1);
CreateProcess(NULL, pParam, NULL, NULL, FALSE, 0, NULL, NULL, &si, &piProcess);
pParam赋值之后,如下:-
pParam 0x0012fe50 "Child.exe ?" char [128]
[0x0] 0x43 'C' char
[0x1] 0x68 'h' char
[0x2] 0x69 'i' char
[0x3] 0x6c 'l' char
[0x4] 0x64 'd' char
[0x5] 0x2e '.' char
[0x6] 0x65 'e' char
[0x7] 0x78 'x' char
[0x8] 0x65 'e' char
[0x9] 0x20 ' ' char
[0xa] 0xa0 char
[0xb] 0x0f '␏' char
子进程:
int main (int argc, TCHAR * argv[])
取argv[1]的值看,变成这样了。
argv[1][0] 0x3f '?' char
argv[1][1] 0x00 char
argv[1][2] 0xfd char
argv[1][3] 0xfd char
argv[1][4] 0xfd char
传递字符正常,但是非字符都变成'3f'了,请教各位,这里有什么问题?
小弟没分了,所以。。