Tech Support > Microsoft Windows > Development Resources > Help needed?!
Help needed?!
Posted by LuCk on December 30th, 2003


I compile a program and there are no compiling errors....but when i go to
build the program or execute it, i get the following error:

----------------------------------------------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Skeleton.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
----------------------------------------------------------

The Source code is as follows:
----------------------------------------------------------


#include "Skeleton.h"

//-----------------------------------------------------------------
// Global Function Declarations
//-----------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM
lParam);

//-----------------------------------------------------------------
// Global Functions
//-----------------------------------------------------------------

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT("Skeleton");
WNDCLASSEX wndclass;
HWND hWindow;
MSG msg;

// Create the window class for the main window
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(hInstance,
MAKEINTRESOURCE(IDI_SKELETON));
wndclass.hIconSm = LoadIcon(hInstance,
MAKEINTRESOURCE(IDI_SKELETON_SM));
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;

// Register the window class
if (!RegisterClassEx(&wndclass))
return 0;

// Create the window
hWindow = CreateWindow(szAppName, szAppName, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance,
NULL);

// Show and update the window
ShowWindow(hWindow, iCmdShow);
UpdateWindow(hWindow);

// Enter the main message loop
while (GetMessage(&msg, NULL, 0, 0))
{
// Process the message
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM
lParam)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rect;

switch (msg)
{
case WM_PAINT:
// Draw some text centered in the client area of the main window
hDC = BeginPaint(hWindow, &ps);
GetClientRect(hWindow, &rect);
DrawText(hDC, TEXT("This is a skeleton application!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hWindow, &ps);
return 0;

case WM_DESTROY:
// Exit the application
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWindow, msg, wParam, lParam);
}


----------------------------------------------------------

Regards,
Carl


Posted by Amit on December 30th, 2003


I am assuming here that you are using Visual C++ to compile/link your
program.
In which case you probably have created a Project "Win32 Console
Application". Try creating
a project "Win32 Application".
On VC++ 6.0 the way to create a new project is click File-->New-->Projects
Tab. For VC.Net, I think
it is a bit different.

-Amit

"LuCk" <LuCk@insight.rr.com> wrote in message
news:RF8Ib.101539$031.19137@fe3.columbus.rr.com...



Similar Posts