Bekomme das script nicht zum laufen kommen immer fehler bin anfänger



  • /**********************************************************/ 
    /* Das Programm erzeugt einen Button im Internet Explorer */ 
    /*                                                        */ 
    /* Eingabe Parameter: Systemspezifische Daten             */ 
    /* Return-Wert: 0                                         */ 
    /**********************************************************/ 
    
    #include <windows.h> // muss sein ;) 
    #include <Rpcdce.h> // für GUID-Funktionen 
    #include <string.h> // für String-Funktionen 
    
    #pragma comment(lib, "Rpcrt4.lib") // Rpcrt4.lib einbinden (GUID-Funktionen) 
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ 
        GUID            guid ; // der neue GUID 
        unsigned char    *StringUuid ; // Zeiger für die Umwandlung 
        HKEY            hKeyReg ; // Registrykey 
        TCHAR            szKey[MAX_PATH] = "SOFTWARE\\Microsoft\\Internet Explorer\\Extensions\\", // Schluessel-Path 
                        szGuid[MAX_PATH], // String für den neu erstellten GUID 
                        szDefaultVisible[] = TEXT ("yes"), // Variable für die Eigenschaft sichtber "yes" oder unsichtber "no" 
                        szButtonText[] = TEXT ("Button Text"), // Variable für den Tooltip (Buttontext) 
                        szHotIcon[] = TEXT ("HotIcon"), // Variable für den Path für den HotIcon (wenn die Maus drüber ist) 
                        szIcon[] = TEXT ("Icon"), // Variable für den Path für den Icon (Standard-Icon) 
                        szCLSID[] = TEXT ("{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"), // nicht ändern 
                        szClsidExtension[] = TEXT ("{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"), // nicht ändern 
                        szExec[] = TEXT ("http://www.c-plusplus.net/forum/viewforum.php?f=4") ; // die zu aufrufenden internetadresse (inc. http://) 
         // guid auf 0 setzen 
        memset (&guid, '\0', sizeof (guid)) ; 
        // neuen GUID erstellen 
        if (CoCreateGuid (&guid) == S_OK){ 
            if (UuidToString (&guid, &StringUuid) == RPC_S_OK){ // GUID in "unsigned char" formatieren 
                strcpy (szGuid, "{") ; 
                strcat (szGuid, (char*) StringUuid) ; 
                strcat (szGuid, "}") ; 
                RpcStringFree (&StringUuid) ; 
            } 
            else{ 
                MessageBox (NULL, "kleiner fehler", ":(", MB_ICONERROR) ; 
                return 0 ; 
            } 
        } 
        else{ 
            MessageBox (NULL, "kleiner fehler", ":(", MB_ICONERROR) ; 
            return 0 ; 
        } 
        // Registrykey mit dem neuen GUID erstellen 
        strcpy (szKey, "SOFTWARE\\Microsoft\\Internet Explorer\\Extensions\\") ; // 
        strcat (szKey, szGuid) ; 
        // neuen Schluessel erstellen 
        if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, szKey, 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKeyReg, 0) == ERROR_SUCCESS){ 
            // neue Zeichenfolgen unter dem GUID erstellen 
            RegSetValueEx (hKeyReg, "DefaultVisible", 0, REG_SZ, (BYTE*) szDefaultVisible, strlen (szDefaultVisible) + 1) ; 
            RegSetValueEx (hKeyReg, "ButtonText", 0, REG_SZ, (BYTE*) szButtonText, strlen (szButtonText) + 1) ; 
            RegSetValueEx (hKeyReg, "HotIcon", 0, REG_SZ, (BYTE*) szHotIcon, strlen (szHotIcon) + 1) ; 
            RegSetValueEx (hKeyReg, "Icon", 0, REG_SZ, (BYTE*) szIcon, strlen (szIcon) + 1) ; 
            RegSetValueEx (hKeyReg, "CLSID", 0, REG_SZ, (BYTE*) szCLSID, strlen (szCLSID) + 1) ; 
            RegSetValueEx (hKeyReg, "ClsidExtension", 0, REG_SZ, (BYTE*) szClsidExtension, strlen (szClsidExtension) + 1) ; 
            RegSetValueEx (hKeyReg, "Exec", 0, REG_SZ, (BYTE*) szExec, strlen (szExec) + 1) ; 
            RegCloseKey (hKeyReg) ; 
            MessageBox (NULL, szGuid, "GUID fertig", NULL) ; 
        } 
        else 
            MessageBox (NULL, "kleiner fehler", ":(", MB_ICONERROR) ; 
        return 0 ; 
    }
    


  • Schöner Code.

    Da Du uns nicht sagst, was für Fehlermeldungen Du bekommst, sag ich Dir dafür nicht, warum es nicht geht. Einverstanden?



  • [Linker error] undefined reference to CoCreateGuid@4' [Linker error] undefined reference toUuidToStringA@8'
    [Linker error] undefined reference to `RpcStringFreeA@4'
    ld returned 1 exit status



  • hi,

    ich denke du musst die Bibliothek noch laden. Rpcrt4.lib

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

    siehe auch: http://www.c-plusplus.net/forum/viewtopic-var-t-is-49190.html

    gruss
    msp



  • msp schrieb:

    hi,

    ich denke du musst die Bibliothek noch laden. Rpcrt4.lib

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

    siehe auch: http://www.c-plusplus.net/forum/viewtopic-var-t-is-49190.html

    gruss
    msp

    aber wie lade ich sie ich weiß das ich dumme fragen stelle Entschuldigung



  • Das hängt von Deinem Linker/Deiner IDE ab. Das #pragma kennt nur das Visual Studio, und den benutzt Du nicht (da sehen die Fehlermeldungen nämlich anders aus).



  • dev-c++ als compiler



  • Dann würde ich mal vorschlagen Du liest in der (sicherlich mitgelieferten) Doku des Linkers, wie man Libraries verlinkt.



  • Compiler# schrieb:

    Dann würde ich mal vorschlagen Du liest in der (sicherlich mitgelieferten) Doku des Linkers, wie man Libraries verlinkt.

    Visual Studio von Microsoft kommt die fehlermeldung

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

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



  • Du versuchst eine Konsolenanwendung zu erstellen, es handelt sich bei dem Quelltext aber um eine Windowsanwendung.

    Erstell ein leeres Windows-Project, füge den Quelltext ein und es wird gehen.



  • nur ich muss im ie erst aufanpassen und dann auf hinzufügen kann es sein das der schlüssel nicht stimmt von der reg


Anmelden zum Antworten