Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо