首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求指出指针异常的地方

2012-03-19 
求指出指针错误的地方PROCESS_INFO piINT argcWCHAR **argvDWORD iDWORD dwBufferSize lstrlen(lpCm

求指出指针错误的地方
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中没有,瞎弄
[解决办法]
没人有时间帮你一句句的检错
自己说说什么错误?到那里错误?

热点排行