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!
-
linke mal vor der srreansaver lib noch diese mit
comctl32.lib
-
du kannst die lib dateien übrigends auch einfach per "rechtsklick->dateien hinzufügen" einfügen
die stehen dann bei deinen cpps in der dateiliste