Kleines Problemchen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kleines Problemchen

    Nich übern Titel beschweren, ein bessere ist mir nicht eingfallen. ;)

    Also habn kleines Prob, und zwar wollte ich ein Mini-Programm schreiben, dass den Desktop-Hintergrund ändert (hab kein fertiges gefunden).

    Bis hierhin bin ich gekommen:

    C-Quellcode

    1. #include <iostream>
    2. #include <windows.h>
    3. using namespace std;
    4. extern BOOL SystemParamtersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni);
    5. int main(int argc, char *argv[]) {
    6. if (argc == 1) { cout << "Syntax: setbkg <path to wallpaper>\n"; return 1; }
    7. char* wallp = argv[1];
    8. BOOL x = SystemParamtersInfo(SPI_SETDESKWALLPAPER, 0, wallp, 0);
    9. return 0;
    10. }
    Alles anzeigen


    Folgender Linker-Fehler kommt da:
    winpetool.obj : error LNK2019: unresolved external symbol "int __cdecl SystemParamtersInfo(unsigned int,unsigned int,void *,unsigned int)" (?SystemParamtersInfo@@[email protected]) referenced in function _main


    Hier übrigens der Auszug aus der MSDN:

    BOOL SystemParametersInfo(
    UINT uiAction, // system parameter to retrieve or set
    UINT uiParam, // depends on action to be taken
    PVOID pvParam, // depends on action to be taken
    UINT fWinIni // user profile update option
    );

    Requirements
    Windows NT/2000/XP: Included in Windows NT 3.1 and later.
    Windows 95/98/Me: Included in Windows 95 and later.
    Header: Declared in Winuser.h; include Windows.h.
    Library: Use User32.lib.


    Linker Befehl sieht so aus:
    /OUT:".\Debug/winpetool.exe" /VERSION:0.1a /INCREMENTAL /NOLOGO /LIBPATH:"C:\programme\microsoft visual studio\VC98\Lib\user32.lib" /DEBUG /PDB:".\Debug/winpetool.pdb" /SUBSYSTEM:CONSOLE


    Tjoa, weiß einer nen Rat? (Ist ja wirklich ein recht kleines Programmchen) ;)
  • MG-TX schrieb:

    Also habn kleines Prob, und zwar wollte ich ein Mini-Programm schreiben, dass den Desktop-Hintergrund ändert (hab kein fertiges gefunden).


    Bei deinem Programm kann ich dir leider nicht helfen, aber das ^^ klingt so als ob du eigentlich nur am Ergebnis (egal ob eigenes Prog oder fremdes) interessiert bist.

    Falls das der Fall ist:
    wallpaperchanger.de/ :D
    (manchmal kann es sooo einfach sein ;) )

    Gruß,
    Commander Keen
    Ich habe das Wort "Europa" immer im Munde derjenigen Politiker
    gefunden, die von anderen Mächten etwas verlangten, was sie im
    eigenen Namen nicht zu fordern wagten. [SIZE="1"](Nov. 1876)[/SIZE]
    [SIZE="1"]Otto von Bismarck[/SIZE]
  • Ich hab's mal grade ausprobiert. So wie's aussieht, läßt sich diese Funktion in einer Konsolenanwendung so einfach nicht aufrufen.
    Nach der MSDN machst du (fast) alles richtig. Einzige Abweichung, die ich gefunden habe: die tatsächliche Funktion heisst SystemParametersInfoW oder SystemParametersInfoA. In der winuser.h wird je nach Bedarf darauf ein Link gesetzt.

    Grüße
    Michael
  • BOOL x = SystemParamtersInfo(SPI_SETDESKWALLPAPER, 0, wallp, 0);

    es fehlt das 'e' hinterm 2. 'm' bei SystemParametersInfo

    btw, oben noch mal die funktion zu deklarieren is unnötig, da sie ja schon in windows.h, das du ja eingebunden hast, deklariert ist