libs bekanntmachen



  • Wie geht das? Das ich dem compiler sage welche Bibliotheken er mitlinken soll?



  • In den Projekteinstellungen



  • Oder (beim Visual Studio) per

    #pragma comment(lib, "NameDerLib.lib")
    


  • jup, klapptaber:
    wenn ich das:

    // SCR.cpp : Definiert den Einstiegspunkt für die Anwendung.
    //
    
    #include "stdafx.h"
    #include "SCR.h"
    #define MAX_LOADSTRING 100
    #include <windows.h>
    #include <scrnsave.h>
    
    #pragma comment(lib, "gdi32.lib")
    #pragma comment(lib, "scrnsave.lib")
    
    #define ID_TIMER    1
    #define NUM 1200
    int v[NUM];
    
    void fill()
    {
        srand((int) GetCurrentTime());
        for (int j=0;j<NUM;++j)
            {
                int a=rand()%10;
                v[j]=a;
            };    
    };
    
    // Globale Variablen:
    HINSTANCE hInst;								// Aktuelle Instanz
    TCHAR szTitle[MAX_LOADSTRING];					// Titelleistentext
    TCHAR szWindowClass[MAX_LOADSTRING];			// Klassenname des Hauptfensters
    
    // Vorwärtsdeklarationen der in diesem Codemodul enthaltenen Funktionen:
    ATOM				MyRegisterClass(HINSTANCE hInstance);
    BOOL				InitInstance(HINSTANCE, int);
    LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
    LRESULT CALLBACK	About(HWND, UINT, WPARAM, LPARAM);
    
    LONG WINAPI ScreenSaverProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
     	static int x1,x2,y1,y2,cx,cy,i=0;
        static HBITMAP hBitmap;
        static HDC hdcMem,hdc;
        PAINTSTRUCT ps;
        switch(message)
        {
            case WM_CREATE:
                SetTimer (hwnd, ID_TIMER, 10, NULL);
                fill();
                cx=GetSystemMetrics(SM_CXSCREEN)/10;
                cy=GetSystemMetrics(SM_CYSCREEN)/10;
                return 0;
            case WM_TIMER:
                if (i==NUM)
                {
                    i=0;
                    fill();
                };    
                x1=cx*v[i++];
                y1=cy*v[i++];
                x2=cx*v[i++];
                y2=cy+v[i++];
                InvalidateRect(hwnd,NULL,TRUE);
    			return 0;
            case WM_PAINT:
                hdc=BeginPaint(hwnd, &ps);
                hdcMem=CreateCompatibleDC (hdc);
                hBitmap=CreateCompatibleBitmap (hdc, cx, cy);
                SelectObject(hdcMem, hBitmap);
                BitBlt (hdcMem,0,0,cx,cy,hdc,x1,y1, SRCCOPY);
                BitBlt (hdc,x1,y1,cx,cy,hdc,x2,y2, SRCCOPY);
                BitBlt (hdc,x2,y2,cx,cy,hdcMem,0,0, SRCCOPY);
                EndPaint(hwnd, &ps);
                DeleteDC(hdcMem);
                DeleteObject(hBitmap);
                return 0;
            case WM_DESTROY:
                DeleteDC(hdcMem);
                ReleaseDC(hwnd, hdc);
                DeleteObject(hBitmap);
                return 0;
       }
       return DefScreenSaverProc(hwnd,message,wParam,lParam);
    };
    
    //
    //  FUNKTION: MyRegisterClass()
    //
    //  ZWECK: Registriert die Fensterklasse.
    //
    //  KOMMENTAR:
    //
    //    Sie müssen die Funktion zu verwenden, wenn Sie möchten, dass der Code
    //    mit Win32-Systemen kompatibel ist, bevor die Funktion 'RegisterClassEx'
    //    zu Windows 95 hinzugefügt wurde. Der Aufrud der Funktion ist wichtig,
    //    damit die kleinen Symbole, die mit der Anwendung verknüpft sind,
    //    richtig formatiert werden.
    //
    ATOM MyRegisterClass(HINSTANCE hInstance)
    {
    	return 0;
    };
    
    //
    //   FUNKTION: InitInstance(HANDLE, int)
    //
    //   ZWECK: Speichert das Instanzenhandle und erstellt das Hauptfenster.
    //
    //   KOMMENTAR:
    //
    //        In dieser Funktion wird das Instanzenhandle in einer globalen Variablen gespeichert, und das
    //        Hauptprogrammfenster wird erstellt und angezeigt.
    //
    BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
    {
       return TRUE;
    }
    
    //
    //  FUNKTION: WndProc(HWND, unsigniert, WORD, LONG)
    //
    //  ZWECK:  Verarbeitet Meldungen vom Hauptfenster.
    //
    //  WM_COMMAND	- Verarbeiten des Anwendungsmenüs
    //  WM_PAINT	- Zeichnen des Hauptfensters
    //  WM_DESTROY	- Beenden-Meldung anzeigen und zurückgeben
    //
    //
    
    // Meldungshandler für Infofeld.
    LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	return 0;
    }
    
    BOOL WINAPI ScreenSaverConfigureDialog(HWND hWnd, UINT message, 
                                           WPARAM wParam, LPARAM lParam)
    {
       switch(message)
       {
          case WM_INITDIALOG:
             return TRUE;
    
          case WM_COMMAND:
             switch(LOWORD(wParam))
             {
                case IDOK:
                   EndDialog(hWnd,0);
                   return TRUE;
    
                case IDCANCEL:
                   EndDialog(hWnd,0);
                   return TRUE;
             }
             break;
    
       }
       return FALSE;
    }
    
    BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
    {
       return TRUE;
    };
    

    (alle anderen Dateien unverändert) kompiliere kommen folgende Fehler:

    scrnsave.lib(scrnsave.obj) : error LNK2019: Nicht aufgelöstes externes Symbol '__imp__InitCommonControlsEx@4', verwiesen in Funktion '_WinMainN@16'
    
    Debug/SCR.exe : fatal error LNK1120: 1 unaufgelöste externe Verweise
    

    was heißt das? Nicht über den code aufregen, der funzt auch net!





  • du kannst die lib dateien übrigends auch einfach per "rechtsklick->dateien hinzufügen" einfügen
    die stehen dann bei deinen cpps in der dateiliste


Anmelden zum Antworten