17

I've been looking around but I couldn't find the solution to my problem, even with some supposedly solved problems that resemble mine.

I want to hide the console window when my C program runs.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#define _WIN32_WINNT 0x0500

int main(){   
    HWND hWnd = GetConsoleWindow();
    ShowWindow( hWnd, SW_MINIMIZE );  //won't hide the window without SW_MINIMIZE
    ShowWindow( hWnd, SW_HIDE );
}

This is what I tried but the compiler gives me

initialization makes pointer from integer without a cast

and the fatal one which actually stops the compiling:

undefined reference to 'GetConsoleWindow'

PS: I've checked wincon.h and the GetConsoleWindow() function is defined.

Roberto Caboni
  • 7,252
  • 10
  • 25
  • 39
Athropos
  • 253
  • 1
  • 2
  • 8
  • This could help you: [How to hide Console Window with WinAPI?](http://stackoverflow.com/questions/6096500/howto-hide-console-window-with-winapi) – Omar Aug 04 '12 at 21:43
  • Ken, I am using C not C++ and that thread solves a different problem, not this one. I already tried it out. – Athropos Aug 04 '12 at 21:53
  • @Steve314, you're right. Going back and reading in more depth, it isn't. Removing my comment - can't undo the close vote, but don't want to direct others the wrong way. Thanks for the correction. :-) y Orionis, my apologies. – Ken White Aug 04 '12 at 22:00

1 Answers1

17

Your

#define _WIN32_WINNT 0x0500

(which is needed to use GetConsoleWindow - see the documentation) must be before

#include <windows.h>

That #define is used by windows.h to know which version of Windows you are targeting (and thus which declarations it has to provide/which additional fields it has to add to structures/other magic that may be related to that linker error); if you define it after you include windows.h it will be useless.

Matteo Italia
  • 123,740
  • 17
  • 206
  • 299