سؤال

هل يمكن أن تشرح لي 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 يتفقان على اتفاقية الاتصال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top