Переделываю заголовочный фаил, и от не знания си встрял. Не знаю как обьявить вот это: Код (Text): typedef BOOL (*TASKENUMPROC)(struct tasklist *, LPARAM); И еще вопрос. Звезда перед именем функции: Код (Text): API_EXPORT struct tasklist *GetTaskListPtr(); Означает, что ф-я ссылку вернет???
Звезда означает, что это указатель. Амперсанд - ссылка (в типах). По первому - это указатель на функцию. На асме можно просто указатель. Или в масме через typedef ptr как указатель на функцию с двумя аргументами.
SammIk Это используется для приведения указателя на функцию к определыенному прототипу. В масме это вообще не нужно обьявлять, хотя можно: TASKENUMPROC typedef PROTO WORD,WORD Функция вернёт нечто типа struct tasklist *, а что собой представляет struct tasklist *? - Это указатель на структуру tasklist.
Спасибо, за оперативность. Вот еще два вопроса возникло. .1 Что значит этот префикс Вот еще один вопрос возник? Код (Text): API_EXPORT void EnumTasks (TASKENUMPROC lpEnumFunc, LPARAM lParam); Вроде бы весь блок в .h с обьявлениями ф-ий взят в extern "C" { }. Или же этот префикс ничего не значит, типа void. .2 Вот сдесь: Код (Text): enum { BB_DM_TOP, BB_DM_BOTTOM, BB_DM_LEFT, BB_DM_RIGHT, BB_DM_REFRESH = -1 }; Перечисление будет начинаться с нуля, а последнее будет -1. Или же более хитро?
Скорее всего, это просто __stdcall, но более точно можно узнать только посмотрев в заголовочные файлы. К примеру, в старом PSDK этой API_EXPORT вообще нет. Да, всё так просто.
Ну если __BBCORE__ определен, то API_EXPORT - это __declspec(dllexport), иначе это просто пустая строка.