WinMain لم يتم استدعاؤه من قبل Main (إصدار نقطة إدخال برنامج C/C ++)

StackOverflow https://stackoverflow.com/questions/2620031

  •  26-09-2019
  •  | 
  •  

سؤال

كنت تحت الانطباع بأن هذا الرمز

#include <windows.h>

#include <stdio.h>

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    printf("WinMain\n");

    return 0;
}

int main()
{
    printf("main\n");

    return 0;
}

سوف يخرج WinMain ، ولكن بالطبع لا شيء يعمل على الإطلاق كيف تتوقع.

على أي حال ، هل يمكن لشخص ما أن يخبرني بكيفية جعل هذا البرنامج يدير WinMain أولاً (لدي سبب لاستخدام كليهما). أقوم بتشغيل Windows 7 مع Mingw إذا كان ذلك يساعد أي شيء.

هل كانت مفيدة؟

المحلول 3

فقط وجدت هذا العمل حوله ونوع من الشعور بالأخر.

#define main USER_Main

هذا بعد ذلك يأخذ خارج الخط لكونه نقطة دخول البرامج مع الاستمرار في إخفاء حقيقة أن أي شيء قد عابث من المستخدم.

نصائح أخرى

تحتاج إلى وضع -mwindows على سطر الأوامر عند الاتصال بـ Mingw. الشيك هذه خارج مقدمة لطيفة لبرمجة Windows مع Mingw.

أيضًا: لا يمكن أن يكون لديك نقطتان للدخول في تنفيذ ، لذلك ربما لا يمكنك فعل ما تريد القيام به.

سيختار برنامج التحويل البرمجي نقطة إدخال واحدة أو أخرى بناءً على ما إذا كنت تستهدف الإخراج المترجم إلى نظام Windows الفرعي أو نظام وحدة التحكم. WinMain عن السابق، main لهذا الأخير.

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