Probleme mit DLL



  • Original erstellt von dEUs:
    wenn du an der letzten anweisung von b angekommen bist, dann stepp mit StepIn (F11 beim VC++) weiter, du kommst dann in die destruktoren der einzelnen objekte, die du instaziert hast. Ich denke, in irgendeinem destruktor hauts dich raus.

    gelesen??



  • Original erstellt von dEUs:
    gelesen??

    jo 🙂



  • Siest du irgendwo ein lokales Objekt, dass einen Destruktor haben könnte ???



  • D3DPRESENT_PARAMETERS ist eine C-Struktur und hat folgedessen keinen Destruktor...



  • Hat diese struktur irgendwelche member, die nen dtor haben? strukturen haben ürbigens seit c++ auch dtors!



  • @dEUs
    Ja, doch dies ist eine C-Struktur, die haben doch keine Destruktoren ??

    typedef struct _D3DPRESENT_PARAMETERS_ {
    UINT BackBufferWidth, BackBufferHeight;
    D3DFORMAT BackBufferFormat;
    UINT BackBufferCount;
    D3DMULTISAMPLE_TYPE MultiSampleType;
    DWORD MultiSampleQuality;
    D3DSWAPEFFECT SwapEffect;
    HWND hDeviceWindow;
    BOOL Windowed;
    BOOL EnableAutoDepthStencil;
    D3DFORMAT AutoDepthStencilFormat;
    DWORD Flags;
    UINT FullScreen_RefreshRateInHz;
    UINT PresentationInterval;
    } D3DPRESENT_PARAMETERS;

    Ausserdem: Wenn ich genau denselben Code in einem gewöhnlichen Win32 Projekt kopiliere, dann funktioniert auch alles, nur in diesen verflixten DLL's habe ich nur Probleme...



  • Klassen in DLLs... Tsetsetse 🙄
    Das führt sowieso nur zu Problemen.
    Machs z.B. als statische .lib, das kommt beim Ausführen (für deinen konkreten Fall) aufs selbe raus, außer dass dabei Klassen nicht nachträglich reingehackt wurden.
    Oder nimm gleich COM. Das ist wirklich für Klassen gedacht.

    Warum schreibst du eigentlich überall this-> vor die Elementvariablen? Das ist irgendwie sinnlos und eher verwirrend als hilfreich (genauso wie die Präfixe).



  • Bist Du sicher, dass unten genannte Zeichenkette in pBuf[96] überhaupt reinpasst?

    char pBuf[96];
    sprintf(pBuf,"Ein <strong>IDirect3DDevice9 (%s %s Vollbild)</strong> Objekt wird %s",this->getDisplayModeString(),this->format == _16Bit ? "16-Bit" : "32-Bit",(bInit || this->bRecreateDev) ? "erzeugt" : "reinitialisiert");
    


  • Nur so nebenbei:

    aus MSDN:
    StringCbPrintf is a replacement for sprintf



  • @ D@niel

    Allerdings frage ich mich, wozu man für eine Coca-Cola-Flasche eine 5cm dicke Schaumstoffummantelung braucht, nur weil 0,1% der Bauarbeiter nicht in der Lage sind, ihre Flaschen festzuhalten, wenn sie 10m über der Erde was trinken wollen.
    😉


Anmelden zum Antworten