![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
EnumResourceTypes постоянно возвращает ошибку [D6, WinXP]
Surik © (2005-12-04 13:08:00)Доброго времени суток! Подскажите, что я делаю неправильно?
function EnumResTypeProc(hModule: Cardinal; lpszType: PChar; Param: Integer): Bool;stdcall;
begin
MessageBox(0,lpszType,nil,0);
Result := True;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
hMod,hRes: Cardinal;
begin
if not opendialog1.Execute then exit;
hMod := LoadLibrary(PChar(opendialog1.FileName));
EnumResourceTypes(hMod,@EnumResTypeProc,0); { всегда возвращает}
ShowMessage(SysErrorMessage(GetLastError)); {"Неверная попытка обращения к адресу памяти"}
end;
Lamer@fools.ua (2005-12-04 13:29:00) [1]>> Surik (04.12.05 13:08)
> MessageBox(0,lpszType,nil,0);
Из справки:
EnumResTypeProc Function
...
Remarks
If IS_INTRESOURCE( lpszType) is TRUE, lpszType specifies the integer identifier of the given resource. Otherwise, it is a pointer to a null-terminated string. If the first character of the string is a pound sign ( #), the remaining characters represent a decimal number that specifies the integer identifier of the resource. For example, the string " #258" represents the identifier 258.
Далее.
IS_INTRESOURCE Macro
...
Remarks
This macro checks whether all bits except the least 16 bits are zero. When true, wInteger is an integer identifier for a resource. Otherwise it is typically a pointer to a string.