Alle Verweise auf "ADVAPI32.dll" wurden durch /OPT:REF verworfen ??!?



  • Hi all

    ich habe da mal eine Frage. 😕
    und zwar bekomme ich, wenn ich mein Projekt Release(n) möchte diese Warnung:

    --------------------Konfiguration: MySnake - Win32 Release--------------------
    Linker-Vorgang läuft...
    LINK : warning LNK4089: Alle Verweise auf "ADVAPI32.dll" wurden durch /OPT:REF verworfen

    MySnake.exe - 0 Fehler, 1 Warnung(en)

    wenn ich das Projekt dennoch versuche zu starten erscheint immer ein leeres Fenster, welches nach einem Moment nicht mehr reagiert 😞

    Allerdings, wenn ich das Projekt im Debugmodus Kompeliere, Linke läuft es ohne Probleme. :p
    Kann mir jemand einen Tipp geben woran dies ligt, was man dagegen machen kann oder wo ich am besten nachschlagen sollte um solche Fehler vermeiden zu können. ⚠

    Mfg. wastman



  • Gibt es in den Projekteinstellungen unter "Linker" irgendwelche Unterschiede zwischen Debug und Release?
    Wenn ja, welche?

    Was passiert wenn du die Einstellungen angleichst?

    🙂



  • Diese Warnung kann man ignorieren. Ich glaub das heißt nur, das du eine Library linkst, die dann gar nicht gebraucht wird.



  • Hi erstmal danke für eure Antworten:

    @fresh: das dachte ich auch nur leider stürtzt das Programm wenn ich es ausführe immer ab ( muß per Taskmanager beendet werden). Weiterhin, wenn ich die Datei aus dem linker entferne kommt immer die Nachricht, das 4 externe verweise nicht gelinkt werden konnten 😞

    @estartu_de: der einzige unterschied der mir aufgefallen ist, ist das im Debug modus noch [ Debug info generieren und Inkremenntells Binden per häckchen aktiviert ist].
    wenn ich dies im Releas Modus auch setze ist die warnung weg.
    Allerdings hängt sich das Programm beim starten immer noch auf 😡
    im gegensatz zum debug modus.

    Debug:
    winmm.lib dxguid.lib dxerr8.lib ddraw.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dsound.lib advapi32.lib
    Release:
    winmm.lib dxguid.lib dxerr8.lib ddraw.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dsound.lib advapi32.lib

    Debug:
    winmm.lib dxguid.lib dxerr8.lib ddraw.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dsound.lib advapi32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/MySnake.pdb" /debug /machine:I386 /out:"Debug/MySnake.exe" /pdbtype:sept
    Release:
    winmm.lib dxguid.lib dxerr8.lib ddraw.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dsound.lib advapi32.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/MySnake.pdb" /machine:I386 /out:"Release/MySnake.exe"

    wenn du noch was siehst woran es liegen könnte immer her damit ⚠ ➡ 💡

    Mfg. wastman



  • Hat nix mit der Warnung zu tun. Du hast irgendwo nen Fehler, zb Grenzüberschreitung eines Arrays o.ä., was beim Debuggen funktioniert, beim release aber nicht ...
    Vielleicht hast du auch vergessen ne variable zu initialisieren?



  • @dEUs
    hmm wenn es das ist habe ich wohl ein Problem 🙄
    Gibt es eine Möglichkeit den Debuger sensibler einzustellen, damit er auch solche Fehler aufzeigt???
    Wenn nicht kann ich mich warscheinlich die nächsten Nächte wegschließen um meinen Code Zeile für Zeile für Zeile nochmal zu studieren 😡 und hoffen, das ich den Fehler nicht wieder übersehe.

    Mfg wastman



  • Bau doch eine MessageBox am Programmanfang ein. Wenn die in der Releaseversion noch erscheint, ist der Fehler weiter hinten. Dann verschiebst du die MessageBox weiter nach hinten usw. -> Release debuggen 🙂



  • Auch wenn ich nicht dEUs bin: Stell dein Warninglevel höher. Das ist alles was mir dazu einfällt.

    Hmm, naja es kommen nicht alle Variablen im Frage, nur:
    Zeiger (und ähnliches), int und andere Datentypen die keine Klassen sind, deine eigenen Klassen, deren Konstruktoren nicht sauber programmiert sind.

    PS: Setz dir ein paar Breakpoints an markante Stellen, dann weißt du, nach welchem Zeitpunkt im Programmablauf du nicht mehr suchen musst. Dadurch kannst du den Suchrahmen besser eingrenzen.

    Viel Glück 🙂



  • @isbeau: Man muss nur die Debuginformationen in den Einstellungen aktivieren, dann kann man eine Release wie gewohnt debuggen.



  • So habe den Fehler gefunden ....
    zumindest funktioniert jetzt das Releasen.

    Es war im übrigen kein Variablenfehler (zumindest habe ich keinen gefunden) 😃
    Nachdem ich in den Projekteinstellungen die Optimierung von geschwindigkeit erhöhen ➡ auf deaktivieren[Debug] bzw. ➡ Standard umgestellt habe ließ sich das Projekt problemlos kompelieren und starten ohne sich dabei aufzuhängen. 😉

    Warum das jetzt so ist weiß ich leider nicht, wenn jemand dafür aus dem Stehgreif eine Erklärung hat, her damit.

    @estartu_de danke für deinen Tip, dass man im Releasmodus auch den Debuger nutzen kann, war mir vorher noch nicht bekannt. Diese könnte manchmal einiges erleichtern. 😉

    @alle anderen Danke für eure Tips 👍

    Mfg. wastman


Anmelden zum Antworten