如下函数,在D7下面可以获得正常的中文名字
        而在D2010下面获取得是乱码  请问是什么问题??????谢谢!!!!!function GetMapName():string;
var
  baseMap:PDWORD;
  MapName:pchar;
begin
  try
    baseMap:=pointer(Map_BASE_ADDRESS);//Map_BASE_ADDRESS 基地址
    baseMap:=pointer(baseMap^+$3460);
    MapName:=pointer(baseMap^+$682);    Result:= MapName;
  except
    Result:='暂未获得地图名';
  end;end;

解决方案 »

  1.   

    看看2010中string是否更新了什么
      

  2.   

    function GetMapName():string; 
    var 
      baseMap:PDWORD; 
      MapName:pansichar; 
    begin 
      try 
        baseMap:=pointer(Map_BASE_ADDRESS);//Map_BASE_ADDRESS 基地址 
        baseMap:=pointer(baseMap^+$3460); 
        MapName:=pointer(baseMap^+$682);     Result:= MapName; 
      except 
        Result:='暂未获得地图名'; 
      end; end;
      

  3.   

    多谢两位, 二楼的不行,用pansichar 编译不通过!
      

  4.   

    那你要检查你的delphi 2010有没安装正确。
    pansichar是基本的指针类型。
      

  5.   


    在system单元,不应该是这里报错的地把。
      

  6.   

    安装没问题:
    编译提示错误如下:[DCC Error] GameProc.pas(197): E2010 Incompatible types: 'AnsiChar' and 'Char'
      

  7.   

    function GetMapName():string; 
    var 
      baseMap:PDWORD; 
      MapName:pansichar; 
    begin 
      try 
        baseMap:=pointer(Map_BASE_ADDRESS);//Map_BASE_ADDRESS 基地址 
        baseMap:=pointer(baseMap^+$3460); 
        MapName:=pointer(baseMap^+$682);     Result:= MapName; 
      except 
        Result:='暂未获得地图名'; 
      end; end;
    这段代码没问题,在D2010下,我帮你测试过了。
      

  8.   

    不好意思,多谢兄弟,是可以,我代码一地方忘了改回来,PANSICHAR
    是正确的!!!!