求指出指针错误的地方
PROCESS_INFO pi;
INT argc;
WCHAR **argv;
DWORD i;
DWORD dwBufferSize = lstrlen(lpCmdLine)+MAX_PATH+1024;
LPSTR szShowBuffer = (LPSTR)MyAlloc(dwBufferSize);
GetProcessInfo(&pi);
argv = CommandLineToArgvW(pi.szwCommandLine, &argc);
*szShowBuffer = NULL;
for (i=0; i<argc; i++)
{
DWORD dwBufferSize = lstrlenW(*argv) + 1;
LPSTR szMBArgv = MyAlloc(dwBufferSize);
WideCharToMultByte(CP_ACP, NULL, *argv, -1, szMBArgv, dwBufferSize, NULL, NULL);
argv++;
lstrcat(szShowBuffer, "\n");
lstrcat(szShowBuffer, szMBArgv);
MyFree(szMBArgv);
}
某本VC++书的例子代码,不懂C,盲目大致翻译如下,很明显是有问题的~ =_=||
var
pi: PROCESS_INFO;
Argc: Integer;
argv: PPWideChar;
i: DWORD;
dwBufferSize: DWORD;
szShowBuffer: PChar;
szMBArgv: PChar;
begin
dwBufferSize := lstrlen(GetCommandLine()) + MAX_PATH + 1024;
szShowBuffer := PAnsiChar(MyAlloc(dwBufferSize));
GetProcessInfo(@pi);
Argv := CommandLineToArgvW(pi.szwCommandline, Argc);
szShowBuffer := nil;
for i:=0 to Argc-1 do
begin
dwBufferSize := lstrlenW(@Argv^) + 1;
szMBArgv := MyAlloc(dwBufferSize);
WideCharToMultiByte(CP_ACP, 0, Argv^, -1, szMBArgv, dwBufferSize, nil, nil);
Inc(Argv, lstrlenW(@Argv^) + 1);
lstrcat(szShowBuffer, #10);
lstrcat(szShowBuffer, szMBArgv);
// MessageBox(0, szShowBuffer, '参数', MB_OK);
MyFree(szMBArgv);
end;
end;
求调教,求指出指针错误~
[解决办法]
你翻译的是个啥啊,人家的很多函数,你照搬过来,delphi中没有,瞎弄
[解决办法]
没人有时间帮你一句句的检错
自己说说什么错误?到那里错误?