如下函数,在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;
而在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;
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;
pansichar是基本的指针类型。
在system单元,不应该是这里报错的地把。
编译提示错误如下:[DCC Error] GameProc.pas(197): E2010 Incompatible types: 'AnsiChar' and 'Char'
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下,我帮你测试过了。
是正确的!!!!