#include
<windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int
WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine,
int iCmdShow){
static
TCHAR szAppName[] = TEXT ("HelloWin") ;HWND hwnd ;
MSG msg ;
WNDCLASS 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 ;
if
(!RegisterClass (&wndclass)){
MessageBox (NULL, TEXT (
"This program requires Windows NT!"),szAppName, MB_ICONERROR) ;
return
0 ;}
hwnd = CreateWindow (szAppName,
// window class nameTEXT (
"The Hello Program"), // window captionWS_OVERLAPPEDWINDOW,
// window styleCW_USEDEFAULT,
// initial x positionCW_USEDEFAULT,
// initial y positionCW_USEDEFAULT,
// initial x sizeCW_USEDEFAULT,
// initial y sizeNULL,
// parent window handleNULL,
// window menu handlehInstance,
// program instance handleNULL) ;
// creation parametersShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while
(GetMessage (&msg, NULL, 0, 0)){
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return
msg.wParam ;}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch
(message){
case
WM_CREATE:PlaySound (TEXT (
"hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;return
0 ;case
WM_PAINT:hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, TEXT (
"Hello, Windows 98!"), -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) ;}
______________________________________________________________________
I have a problem with this little program about createwindow: This is the error list of the compiler:
------ Build started: Project: prova2, Configuration: Release Win32 ------
Linking...
prova2.obj : error LNK2001: unresolved external symbol __imp__PlaySoundW@12
C:\Documents and Settings\Poggio\Documenti\Visual Studio 2005\Projects\prova2\Release\prova2.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Poggio\Documenti\Visual Studio 2005\Projects\prova2\prova2\Release\BuildLog.htm"
prova2 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
______________________________________________________________________________________________
______________________________________________________________________________________________
And these are the suggestions that I read on the Petzold:
A couple of warnings: If you use Microsoft Visual C++ to create a new project for this program, you need to
make an addition to the object libraries the linker uses. Select the Settings option from the Project menu, and
pick the Link tab. Select General from the Category list box, and add WINMM.LIB ("Windows multimedia") to
the Object/Library Modules text box. You need to do this because HELLOWIN makes use of a multimedia
function call, and the multimedia object library isn't included in a default project. Otherwise you'll get an error
message from the linker indicating that the
PlaySound function is unresolved.______________________________________________________________________
______________________________________________________________________
I tried to open the project->properties->linker->general->additional library directories and adding the file lib/winmm.lib But i think it's not so good...I think I'm wrong.
Thankyou

A problem with CreateWindow
Chuckw47
A good example of this is for includes, where headers inside the sys directory are required to have #include <sys/time.h> it would be similar with lib.
Ferentix
No you are not wrong. Just write winmm.lib into the additional library field. Not with the prefix lib\!