I get the LNK2001 linking error when trying to build this code in MSVC++5
I have looked at the help files and i think it has something to do with Extern variables or something, but i dont understand why? The code compiles with 0 errors and 0 warnings
here is the code as i cant seem to post attachements yet
///////////////////////////////////////////////////////////////////////////////////
MAIN.CPP
#include <windows.h>
#include "generic.h"
HINSTANCE hInst; // current instance
LPCTSTR lpszAppName = "Generic";
LPCTSTR lpszTitle = "Generic";
BOOL RegisterWin95(CONST WNDCLASS* lpwc);
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MSG msg; //message
HWND hWnd; //windows handler
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = 0;
wc.hIcon = LoadIcon(hInstance,lpszAppName);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = lpszAppName;
wc.lpszClassName = lpszAppName;
if (!RegisterWin95(&wc))
return false;
hInst = hInstance;
hWnd = CreateWindow(lpszAppName,lpszTitle,
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,
CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
if (!hWnd)
return false;
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return(msg.wParam);
}
BOOL RegisterWin95(CONST WNDCLASS* lpwc)
{
WNDCLASSEX wcex;
wcex.style = lpwc->style;
wcex.lpfnWndProc = lpwc->lpfnWndProc;
wcex.cbClsExtra = lpwc->cbClsExtra;
wcex.hInstance = lpwc->hInstance;
wcex.hIcon = lpwc->hIcon;
wcex.hCursor = lpwc->hCursor;
wcex.hbrBackground = lpwc->hbrBackground;
wcex.lpszMenuName = lpwc->lpszMenuName;
wcex.lpszClassName = lpwc->lpszClassName;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.hIconSm = LoadIcon(wcex.hInstance,"SMALL");
return RegisterClassEx(&wcex);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDM_TEST :
break;
case IDM_EXIT :
DestroyWindow(hWnd);
break;
}
break;
case WM_DESTROY :
PostQuitMessage(0);
break;
default :
return(DefWindowProc(hWnd,uMsg,wParam,lParam));
}
return(0L);
}
///////////////////////////////////////////////////////////////////////////////////
Here is "generic.h"
#define IDM_EXIT 100
#define IDM_TEST 200
#define IDM_ABOUT 300
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK About (HWND,UINT,WPARAM,LPARAM);
////////////////////////////////////////////////////////////////////////////////////
Please please someone try this code out in MSVC++ 5 or later and see what my problems are? Or even point me in the direction of a solution?
Thanks for your time.