Thread View: comp.os.ms-windows.programmer.misc
3 messages
3 total messages
Started by Tom Burke
Sun, 22 Nov 1998 00:00
OK, I gots a little problem with my linker, here...
Author: Tom Burke
Date: Sun, 22 Nov 1998 00:00
Date: Sun, 22 Nov 1998 00:00
107 lines
4104 bytes
4104 bytes
I'm trying to teach myself windows programming, & I seem to be having
some problems...
Win95, 486DX100, 32M RAM...
Borland C++5.02 (fresh install)
This piece of code:
/*------------------------------------------------------------
HELLOWIN.C -- Displays "Hello, Windows 95!" in client area
(c) Charles Petzold, 1996
------------------------------------------------------------*/
#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "HelloWin" ;
HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;
wndclass.cbSize = sizeof (wndclass) ;
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 = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;
RegisterClassEx (&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, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (iMsg)
{
case WM_CREATE :
PlaySound ("hellowin.wav", NULL, SND_FILENAME |
SND_ASYNC) ;
return 0 ;
case WM_PAINT :
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, "Hello, Windows 95!", -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY :
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
Compiles with 2 warinngs (trivial, referring to unused instances)
Will not link, get the following error:
Error: Unresolved external '_main' referenced from
C:\BC5\LIB\COX32.OBJ
Can anyone help?
THX
Re: OK, I gots a little problem with my linker, here...
Author: Chris Marriott
Date: Sun, 22 Nov 1998 00:00
Date: Sun, 22 Nov 1998 00:00
20 lines
1607 bytes
1607 bytes
Tom Burke wrote in message <36586EBF.CC89AFA5@erols.com>... >Will not link, get the following error: > Error: Unresolved external '_main' referenced from >C:\BC5\LIB\COX32.OBJ > >Can anyone help? The linker is attempting to create a CONSOLE application with an entry point of "main"; you need to tell it to create a WINDOWS application which has an entry point of "WinMain". In Microsoft's linker you do this by adding a "/subsystem:windows" flag to the linker command line; I'd imagine that Borland's linker has a similar option. Chris ----------------------------------------------------------------------- Chris Marriott, SkyMap Software, UK (chris@skymap.com) Visit our web site at http://www.skymap.com Astronomy software written by astronomers, for astronomers
Re: OK, I gots a little problem with my linker, here...
Author: Norman Bullen
Date: Sun, 22 Nov 1998 00:00
Date: Sun, 22 Nov 1998 00:00
31 lines
1594 bytes
1594 bytes
Borland C++ is attempting to build a "console" application rather than a
Windows GUI application. Console applications must have an
int main(int, char**)
function while GUI applications must have an
int WINAPI WinMain( )
function as you have provided.
Assuming you are using the Borland IDE, you can change your application
to GUI by:
1) Open the Project window
2) Right click on the target (.EXE) line and select Target Expert
3) In the Target Expert dialog, change the Target Model to "GUI".
Next time you start a project make sure to select "GUI" as the Target
Model to start with.
Norm
Tom Burke wrote:
>
> I'm trying to teach myself windows programming, & I seem to be having
> some problems...
>
> Win95, 486DX100, 32M RAM...
>
> Borland C++5.02 (fresh install)
>
> This piece of code:
>
< code snipped >
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads