Avatar billede Slettet bruger
09. juni 2003 - 14:14 Der er 11 kommentarer og
1 løsning

Problemer i forbindelse med Microsoft Visual C++ 6.0

Jeg har anskaffet mig bogen Programming WIndows / Charles Petzold og forsøger i den forbindelse af afvikle program eksempelt

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

#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 name
                          TEXT ("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 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) ;
}

Men når jeg trykker på "Build" får jeg 3 fejl selvom jeg har kopieret teksten direkte fra den medfølgende cd.

Fejlene er:
--------------------Configuration: Hellowin - Win32 Debug--------------------
Compiling...
Hellowin.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Hellowin.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Hellowin.exe - 2 error(s), 0 warning(s)


Er der nogle der kan se hvad der er galt udfra dette... mener at have hørt at det kan have noget med lydsiden at gøre!
Avatar billede arne_v Ekspert
09. juni 2003 - 14:19 #1
Nej - det lyder som om du har valgt "Win32 Console Application" i.s.f.
"Win32 Application".
Avatar billede arne_v Ekspert
09. juni 2003 - 14:19 #2
Altså da du startede projektet.
Avatar billede Slettet bruger
09. juni 2003 - 17:14 #3
arne_v> Hvor er du dog irreterende *sss*
Avatar billede Slettet bruger
09. juni 2003 - 17:15 #4
Den virker nu.. dvs den melder ikke om fejl men lyden kommer ikke!! Men det er nu ikke jordens undergang!!

Har du evt et tip til hvorfor dette sker?
Avatar billede arne_v Ekspert
09. juni 2003 - 17:26 #5
Du har fjernet udkommenteringen ikke ?

Men inegn bud - lyd er ikke lige mit ekspertise område.
Avatar billede Slettet bruger
09. juni 2003 - 17:28 #6
Jo både og for når jeg fjerner "//" får jeg følgende fejl

--------------------Configuration: HelloWin - Win32 Debug--------------------
Compiling...
HelloWin.cpp
Linking...
HelloWin.obj : error LNK2001: unresolved external symbol __imp__PlaySoundA@12
Debug/HelloWin.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

HelloWin.exe - 2 error(s), 0 warning(s)

Men som sagt er lyd ikke vigtigt, bare for at kører eksemplerne igennem :)
Avatar billede arne_v Ekspert
09. juni 2003 - 17:40 #7
Det er med 98% sandsynelighed bare et libraryry der skal linkes mod.
Avatar billede arne_v Ekspert
09. juni 2003 - 17:41 #8
Læs:
  http://clio.mit.csu.edu.au/subjects/itc226/htm/v500ex01.htm

Uddrag:

lick on the Project pull down menu;

select settings…;

click on the link tab, then add winmm.lib to the object/library module list, when I did this, my list was : kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib; Note the last entry is the one I added.
Avatar billede Slettet bruger
09. juni 2003 - 17:46 #9
Det er ikke så lidt du ved arne_v.... hvorlænge har du arbejdet med det her?

Det virker nu :) undertegnede at imponeret
Avatar billede arne_v Ekspert
09. juni 2003 - 17:56 #10
Keine hexerei nur behændigheit.

Jeg lavede en Google søgning på:
  error LNK2001: unresolved external symbol __imp__PlaySoundA@12
ovenstående link dukkede op !
Avatar billede arne_v Ekspert
09. juni 2003 - 17:57 #11
Jeg har ikek arbejdet ret meget med Visual C++, men jeg har levet
af at arbejde med IT siden 1987 !
Avatar billede Slettet bruger
09. juni 2003 - 18:04 #12
okay... nice

Men endnu engang mange tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester