Pregunta

Realmente no tengo idea de por qué esto está ocurriendo ... He creado una aplicación Win32 en emacs, y cada vez que lo hago y ejecutarlo (no a través de la línea de comandos), una ventana de símbolo del sistema hace aparecer debajo de la ventana. Si construyo una aplicación Win32 en el Code :: Blocks, y simplemente seguir su plantilla por defecto, a continuación, se ejecuta sin una ventana de símbolo del sistema. Miré a través del código de ambos y no se puede averiguar lo que podría causar este ...

pensé que era porque he incluido algunos printf () en allí, pero yo no quiero que se queden allí (que eran para la depuración), así que escribí una macro:

#define DEBUG

en main.c, y

#ifdef DEBUG
#include<stdio.h>
#define DBG printf
#else
#define DBG
#endif

en una cabecera (incluido después de la #define DEBUG por supuesto).

Cuando undef'd de depuración, la ventana todavía apareció ... No sé lo que estoy haciendo para que esto ocurra, ¿qué tipo de cosas hacen que una ventana de símbolo del sistema para aparecer en una aplicación Win32? Intenté usar todas las funciones de Windows ****Ex() en lugar de sólo CreateWindow(), etc, pero eso no cambia nada. He comprobado y vuelto a inspeccionar la definición de clase y registro, en vano, y se aseguró de que no olvido una sentencia printf () (lo que habría provocado un error, incluso si lo hiciera, ya que no está incluido stdio.h a menos de depuración se definido).

Esto es lo que incluyó:

#include<windows.h>
#include<windowsx.h>
#include"main.h"
#include"windowproc.h"

Alguien sabe lo que puede causar esto? Incluso me comentó a cabo toda mi stdio, DBG, basura printf, y todavía presenté, y juro que no hay diferencia entre el código y el código :: bloques de código generado, aparte de mi uso de HANDLE_MSG y algunas funciones adicionales a dividir el código.

Actualizar

Estoy utilizando MinGW 3.4.5. con el interruptor -mwindows funcionó, gracias

¿Fue útil?

Solución

Trate de vinculación con el interruptor -mwindows.

Su programa también debe tener el método principal de leer este modo:

int WINAPI WinMain(
....
)

en lugar de la tradicional int main ().

temas relacionados:

Otros consejos

Windows hace una diferencia entre las aplicaciones de Windows "" "consola" y. Las aplicaciones de consola siempre se ejecutan con un terminal asociado.

esta pregunta para obtener detalles sobre las diferencias.

No se sabe qué compilador que está utilizando, pero sé que gcc necesita la opción -mwindows para suprimir la ventana de línea de comandos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top