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

Pchar转integer和string的有关问题

2012-03-07 
Pchar转integer和string的问题我这里是个列举图标组资源名称的回调函数,Function EnumResName(hModule: HM

Pchar转integer和string的问题
我这里是个列举图标组资源名称的回调函数,

Function EnumResName(hModule: HMODULE; lpType, lpName: PChar;lParam: Longint):BOOL; stdcall;
//lpType是要提取的资源类型,这里为RT_GROUP_ICON
//lpName为图标组资源名
var
  hIcon1: HICON;
  hResource: HRSRC;
  hMem: HRSRC;
  lpResource: PByte;
  ss:string;
Begin
  //返回在hExe模块中lpName指定的图标组资源的句柄;
  hResource:=FindResource(hExe,lpName,RT_GROUP_ICON);
  hMem:=LoadResource(hExe,hResource);
  lpResource:=LockResource(hMem);

  //如果名称是字符串用下面这句,如果是数字用这句出错
  Form1.Memo1.Lines.Add(string(lpName));

  //如果名称是数字用下面这句,如果是字符串用这句返回的是指针地址
  Form1.Memo1.Lines.Add(Format('%s',[IntToStr(Integer(lpName)),ss]));

  result:=true;
end;

//这里是调用
procedure TForm1.Button1Click(Sender: TObject);
begin
  //hExe为全局变量,hExe: HINST;
  hExe:=LoadLibrary(PChar('E:\TDDOWNLOAD\4.exe'));
  EnumResourceNames(hExe,RT_GROUP_ICON,@EnumResName,1); 
end;

这里我怎么判断这个名称(lpName)是字符串还是数字的,这里不能用try......except来判断,因为一有异常回调函数就不执行了,直接退出,这里搞得我很头疼,各位达人有什么好办法?

[解决办法]
strpas/strpcopy
[解决办法]
AnsiCompareStr
[解决办法]

探讨

strpas/strpcopy

[解决办法]
pchar 可以直接赋值给string自动转换
有函数atoi
strtointdef
都可以用啊
[解决办法]
strpas/strpcopy
用这个东东

热点排行