Я действительно понятия не имею, почему это происходит ...
Я создал приложение win32 в emacs, и всякий раз, когда я его создаю и запускаю (не через командную строку), под окном появляется окно командной строки. Если я создаю приложение win32 в Code :: Blocks и просто запускаю его шаблон по умолчанию, то оно запускается без окна командной строки. Я просмотрел код обоих и не могу понять, что может вызвать это ...
Я думал, что это потому, что я включил туда несколько операторов printf (), но я не хотел, чтобы они там оставались (они были для отладки), поэтому я написал макрос:
#define DEBUG
в main.c и
#ifdef DEBUG
#include<stdio.h>
#define DBG printf
#else
#define DBG
#endif
в заголовке (включается после #define DEBUG
, конечно).
Когда я отказался от DEBUG, окно все равно появилось ... Я не знаю, что я делаю, чтобы это произошло, что может вызвать появление окна командной строки в приложении win32? Я пытался использовать все ****Ex()
функции Windows вместо CreateWindow()
и т. Д., Но это ничего не изменило. Я проверил и повторно проверил определение класса и регистрацию, но безрезультатно, и убедился, что не забыл оператор printf () (который вызвал бы ошибку, даже если бы я это сделал, поскольку stdio.h
не включен, если только Отладка определяется).
Вот что я включил:
#include<windows.h>
#include<windowsx.h>
#include"main.h"
#include"windowproc.h"
Кто-нибудь знает, что может вызвать это? Я даже закомментировал все мои stdio, DBG, printf нежелательные, и он все еще обнаружился, и я клянусь, нет никакой разницы между моим кодом и кодом, сгенерированным Code :: Blocks, кроме моего использования HANDLE_MSG и нескольких дополнительных функций для разделите код.
Обновление
Я использую MinGW 3.4.5.
с помощью ключа -mwindows работал, спасибо