这段代码是实现内存映射的type
  PShareMem = ^TShareMem;
  TShareMem = record
    Data:array[0..255] of char;
...var
  Form1:TForm1;
  PShare:PShareMem;
implementaion
......PShare:=PShareMem(MapViewOfFile(HMapping,File_map_all_access,0,0,0)); //HMapping:THandle
if PShare = nil then
begin
...不解一:为什么要定义 PShareMem = ^TShareMem;
不解二:这句什么意思 PShare:=PShareMem...   (我知道MapViewOfFile的含义)
谢谢大家!!!

解决方案 »

  1.   

    PShareMem is a pointer type that point the tsharemem type var;
    psharemem(...) is type cast
      

  2.   

    你既然知道MapViewOfFile的含义,还问为什么用指针...
      

  3.   

    第一个问题:那是因为在DELPHI的语法中, 这样是非法的:
    var
      PShare: ^TShareMem;
    begin
      ...
      PShare:=^TShareMem(MapViewOfFile(HMapping,File_map_all_access,0,0,0));而只有这样才是合法的:
    type
      PShareMem: ^TShareMem;var
      PShare: PShareMem;
    begin
      ...
      PShare:=PShareMem(MapViewOfFile(HMapping,File_map_all_access,0,0,0));