ماذا يعني "Winapi" في الوظيفة الرئيسية؟
سؤال
هل يمكن أن تشرح لي WINAPI
كلمة في WinMain()
وظيفة؟
بأبسط طريقة ..
#include <windows.h>
int -->WINAPI<-- WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
return 0;
}
هل هو مجرد بعض وضع Windows Funky؟
ماذا تعمل، أو ماذا تفعل؟ أو بالأحرى ما هي ميزة C ++ التي لم أواجهها بعد؟
المحلول
WINAPI
هو الماكرو الذي يقيم __stdcall
, ، الكلمة الرئيسية الخاصة بـ Microsoft تحدد اتفاقية استدعاء حيث يقوم Callee بتنظيف المكدس. يحتاج المتصل في الوظيفة و Callee إلى الاتفاق على اتفاقية الاتصال لتجنب إفساد المكدس.
نصائح أخرى
هذا هو تعريف ماكرو يهدف إلى الإشارة إلى اتفاقية استدعاء Windows. من MSDN:
تعتمد الطريقة التي يتم بها تزيين الاسم على اللغة وكيف يتم توجيه المترجم لإتاحة الوظيفة ، أي اتفاقية الاتصال. تُعرف اتفاقية الدعوة بين العمليات بين Windows المستخدمة من قبل DLLS باسم اتفاقية WinAPI. يتم تعريفه في ملفات Windows Header باسم WinAPI ، والذي يتم تعريفه بدوره باستخدام WIN32 Denerator __stdCall.
Winapi هو ماكرو يتوسع إلى __stdcall مما يعني أن كالي ينظف المكدس.
إنه خاص بنظام Windows. يحدد اتفاقية الاتصال. يتم استدعاء WinMain من قبل Windows ، وهذا يضمن أن المتصل و Callee يتفقان على اتفاقية الاتصال.