Subject: more information on my problem
From: [email-masked] (Kurt Häusler)

17 Dec 1997 18:32:37 -0800
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_0065_01BD0BB0.6096FF20"
To: <[email-masked]>

This is a multi-part message in MIME format.

------=_NextPart_000_0065_01BD0BB0.6096FF20
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

This is in regard to being able to compile console apps fine but not a
program using the win32 api.  I have attached the source file.
This is my command line:
gcc -o hellowin.exe hellowin.c

And this is compiler output stuff like:

<similar lines trimmed>

C:\WINDOWS\TEMP\cc0010611.o(.text+0x13f):hellowin.c: undefined reference to
`BeginPaint@8'
C:\WINDOWS\TEMP\cc0010611.o(.text+0x151):hellowin.c: undefined reference to
`GetClientRect@8'
C:\WINDOWS\TEMP\cc0010611.o(.text+0x167):hellowin.c: undefined reference to
`DrawTextA@20'
C:\WINDOWS\TEMP\cc0010611.o(.text+0x174):hellowin.c: undefined reference to
`EndPaint@8'
C:\WINDOWS\TEMP\cc0010611.o(.text+0x17f):hellowin.c: undefined reference to
`PostQuitMessage@4'
C:\WINDOWS\TEMP\cc0010611.o(.text+0x199):hellowin.c: undefined reference to
`DefWindowProcA@16'
gcc: Internal compiler error: program ld got fatal signal 1

Three people tried to help by pointing to various sites etc.  that I have
already read and understand but don't cover my problem.  They seem to be
only concerned with writing UNIX style console apps (but how many of them
need to be written for a GUI like windows?).

One person suggested explicitly linking libraries in this manner :

gcc -o hello.exe hello.c -lwin32 -Wl,-subsystem,windows

But it says Wl,-subsystem,windows is an undefined flag.  (I cant find it
anywhere on the docs either)

Someone said adding -lkernal32 -luser32 but the compiler says:

file -lkernal32 not found which looks as though its not recognizing the -l
flag!!

I have set up all the paths and environment vars correctly.  Please help . I
like the idea of the Cygnus project and I want to give it a fair go before I
give up and move on to paying for Visual C++

Thanks a lot

Kurt

------=_NextPart_000_0065_01BD0BB0.6096FF20
Content-Type: application/octet-stream;
	name="Hellowin.c"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="Hellowin.c"

/*--------------------------------------------------------
   HELLOWIN.C -- Displays "Hello, Windows" in client area
                 (c) Charles Petzold, 1992
  --------------------------------------------------------*/

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, UINT, LONG) ;

int WINAPI WinMain (HANDLE hInstance, HANDLE hPrevInstance,
                    LPSTR lpszCmdParam, int nCmdShow)
     {
     static char szAppName[] = "HelloWin" ;
     HWND        hwnd ;
     MSG         msg ;
     WNDCLASS    wndclass ;

     if (!hPrevInstance)
          {
          wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
          wndclass.lpfnWndProc   = WndProc ;
          wndclass.cbClsExtra    = 0 ;
          wndclass.cbWndExtra    = 0 ;
          wndclass.hInstance     = hInstance ;
          wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
          wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
          wndclass.hbrBackground = GetStockObject (WHITE_BRUSH) ;
          wndclass.lpszMenuName  = NULL ;
          wndclass.lpszClassName = szAppName ;

          RegisterClass (&wndclass) ;
	  }

     hwnd = CreateWindow (szAppName,         // window class name
		    "The Hello Program",     // window caption
                    WS_OVERLAPPEDWINDOW,     // window style
                    CW_USEDEFAULT,           // initial x position
                    CW_USEDEFAULT,           // initial y position
                    CW_USEDEFAULT,           // initial x size
                    CW_USEDEFAULT,           // initial y size
                    NULL,                    // parent window handle
                    NULL,                    // window menu handle
                    hInstance,               // program instance handle
		    NULL) ;		     // creation parameters

     ShowWindow (hwnd, nCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, UINT wParam,
                                                          LONG lParam)
     {
     HDC         hdc ;
     PAINTSTRUCT ps ;
     RECT	 rect ;

     switch (message)
          {
          case WM_PAINT:
	       hdc = BeginPaint (hwnd, &ps) ;

               GetClientRect (hwnd, &rect) ;

	       DrawText (hdc, "Hello, Windows!", -1, &rect,
			 DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

	       EndPaint (hwnd, &ps) ;
               return 0 ;

          case WM_DESTROY:
               PostQuitMessage (0) ;
               return 0 ;
          }

     return DefWindowProc (hwnd, message, wParam, lParam) ;
     }

------=_NextPart_000_0065_01BD0BB0.6096FF20--

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".