BOOL WINAPI EnumProcesses(
  DWORD* pProcessIds,
  DWORD cb,
  DWORD* pBytesReturned
);delphi 中 
这样
EnumProcesses(aProcesses,Sizeof(aProcesses),&DWcbNeeded) 编译器没报错(因为是直接复制的,&在C++中是取内存地址)
后查看delphi中EnumProcesses声明为
EnumProcesses(lpidProcess: LPDWORD; cb: DWORD; var cbNeeded: DWORD)于是改成了EnumProcesses(aProcesses,Sizeof(aProcesses),DWcbNeeded)
也能正常运行...我在网上搜了下,没发现 Delphi 中 & 符号的作用,所以来请教一下

解决方案 »

  1.   

    是的 delphi 取地址是@. 但是用 & 编译器没报错。
    既然编译器没报错,所以我很想知道& 到底是干嘛的,delphi 应该没这个符号 
      

  2.   

    EnumProcesses(aProcesses,Sizeof(aProcesses),&DWcbNeeded)
    但是在代码中&符号肯定不是快捷键吧。 你也可以试试在代码中传入&符号。编译器不报错的
      

  3.   

    Reserved words always take precedence over user-defined identifiers. For example,var
      Ch: Char;
      ...
    asm
      MOV     CH, 1
    end;loads 1 into the CH register, not into the Ch variable. To access a user-defined symbol with the same name as a reserved word, you must use the ampersand (&) override operator:MOV     &Ch, 1It is best to avoid user-defined identifiers with the same names as built-in assembler reserved words.看帮助!明白了?