Сообщения: 1019 Откуда: Днепропетровская обл.
|
Норайр за минимализм и масимальную портабельность. С учётом архитектуры Ofront'а мы выработали следующее решение в духе Оберона: системные процедуры, помеченные "PROCEDURE - ", для которых не задано тело: Код: "OBERON" PROCEDURE- CreateWindowExA* (dwExStyle: SET; lpClassName: PtrSTR; lpWindowName: PtrSTR; dwStyle: SET; X: INTEGER; Y: INTEGER; nWidth: INTEGER; nHeight: INTEGER; hWndParent: HWND; hMenu: HMENU; hInstance: HINSTANCE; lpParam: PtrVoid): HWND; PROCEDURE- CreateWindowExW* (dwExStyle: SET; lpClassName: PtrWSTR; lpWindowName: PtrWSTR; dwStyle: SET; X: INTEGER; Y: INTEGER; nWidth: INTEGER; nHeight: INTEGER; hWndParent: HWND; hMenu: HMENU; hInstance: HINSTANCE; lpParam: PtrVoid): HWND; PROCEDURE- CreateWindowEx* (dwExStyle: SET; lpClassName: PtrSTR; lpWindowName: PtrSTR; dwStyle: SET; X: INTEGER; Y: INTEGER; nWidth: INTEGER; nHeight: INTEGER; hWndParent: HWND; hMenu: HMENU; hInstance: HINSTANCE; lpParam: PtrVoid): HWND "CreateWindowExA(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)";
превращаются доработанным Ofront'ом не в макросы, а в прототипы: Код: "C" #define WinApi_CreateWindowEx(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, \ nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowExA(dwExStyle, lpClassName, \ lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) #define WinApi_CreateWindowExA(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, \ nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowExA(dwExStyle, lpClassName, \ lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) __EXTERN INTEGER __CALL CreateWindowExA(SET dwExStyle, INTEGER lpClassName, INTEGER lpWindowName, SET dwStyle, INTEGER X, INTEGER Y, INTEGER nWidth, INTEGER nHeight, INTEGER hWndParent, INTEGER hMenu, INTEGER hInstance, INTEGER lpParam); #define WinApi_CreateWindowExW(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, \ nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowExW(dwExStyle, lpClassName, \ lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) __EXTERN INTEGER __CALL CreateWindowExW(SET dwExStyle, WinApi_PtrWSTR lpClassName, WinApi_PtrWSTR lpWindowName, SET dwStyle, INTEGER X, INTEGER Y, INTEGER nWidth, INTEGER nHeight, INTEGER hWndParent, INTEGER hMenu, INTEGER hInstance, INTEGER lpParam); Атрибуты __EXTERN и __CALL для удобства вынесены в SYSTEM.h и для платформы Windows их определение выглядит так: Код: "C" #define __EXTERN __declspec(dllimport) #define __CALL __stdcall
|
|