PDA

View Full Version : data type ها در ویندوز



ICEMAN
سه شنبه 20 فروردین 1387, 22:06 عصر
سلام ...
در مورد


CALLBACK
FARPROC
STRICT
far
long pointer
LRESULT (CALLBACK* WNDPROC) (HWND, UINT, WPARAM, LPARAM);

یه توضیحی اگه ممکنه در مورد هر کدوم بدید خودم سرچ کردم ولی فکر کنم خوب متوجه نشدم



static testStr * (*pfn)(const char *)= 0

این کد و میشه معنی کنید

ممنون

Nima_NF
سه شنبه 20 فروردین 1387, 23:35 عصر
CALLBACK توسط توابع win32 استفاده می شود و کارش پاک کردن stack می باشد ، پس برای اطلاعات بیشتر مقاله زیر را در مورد calling convention مطالعه کنید:
http://www.codeproject.com/KB/cpp/calling_conventions_demystified.aspx



#define CALLBACK __stdcall

FARPROC هم اشاره گری به تابع می باشد که مثلا در C مشخص می کند که تابع callback دارای تعداد نامشخصی از پارامتر می باشد و یا در ++C شامل پارامتری نیست.



int (FAR WINAPI * FARPROC) ()

STRICT هم در جاهای مختلف اگر تعریف شود کار خواصی صورت می گیرد مثلا procedure مورد نظر از نوع FARPROC یا CALLBACK می شود.

FAR هم برای کامپایلر های 16bit بود و برای 32 بیت ها پشتیبانی نمی شود و فقط نادیده گرفته می شود.




LRESULT (CALLBACK* WNDPROC) (HWND, UINT, WPARAM, LPARAM);

کد فوق هم برای تعریف نوع WNDPROC می باشد که پارامتر های تابع مورد نظر را مشخص می کند.