Erste Window Message-ID ungültig, owlnext, computerabhängig



  • Eine meiner C++ Builder (10.3, clang, 32bit) Anwendungen mit der OWLNext 6.44 Bibliothek (VCL wird parallel verwendet) gibt mir seit kurzem auf meinem Haupt-PC (Win10) beim Start im Debug und Release Mode einen Fehler aus.
    Beim direkten Ausführen der .exe-Datei erscheint kein Fehler.
    In msgthread.cpp gibt TMsgThread::PumpWaitingMessages() den Fehler

    Erste Gelegenheit für Exception bei $779022BC. Exception-Klasse $C0000008 mit Meldung 'system exception (code 0xc0000008) at 0x1717feba'. Prozess MAc.exe (11700)

    Über einen Haltepunkt bekam ich die Message-ID 0x19FA98, die wohl außerhalb der gültigen IDs ist.
    Es ist die erste Message, die die Schleife verarbeitet.
    https://imgur.com/RhYSggW (Sreenshot)

    Danach setzte ich Haltepunkte an alle selbstdefinierten Klassen-Konstruktoren und Stellen, wo ich SendMessage/PostMessage benutze, aber dort wurde alles problemlos ausgeführt.

    Den Projekt-Quellcode incl. Projekt-Datei habe ich auf einen Laptop (auch win10, gleiche Antivirus-Software) kopiert.
    Dort kommt beim Ausführen kein Fehler!
    Dann habe ich den owlnext-Ordner, den Quellcode und die C++-Builder-Einstellungen über das Migration-Tool auf den Haupt-PC zurückkopiert. Dort erschien der Fehler wieder.
    C++ Builder inkl. Erweiterungen deinstalliert und neu installiert. Neu erzeugt (shift+F9), aber der Fehler erscheint weiterhin.

    Ich hatte vor kurzem mehrere Speicherleck-Finder ausprobiert (deleaker, drMemory, Codeguard, valgrind via window subsystem feature)...
    Gibt es eine Windows-Einstellung oder ein Programm, dass die owlnext Window-Message-Schleife verwirrt? Oder könnte das Problem woanders herkommen?



  • Ja, ich denke auch, das liegt an einem der externen Tools. Hast du diese alle noch aktiv oder sie alle schon wieder deinstalliert (evtl. sind da aber 'Reste' zurückgeblieben)?



  • Alle deinstalliert, Subsystem deaktiviert und mit CCleaner hinterher gefegt. Problem besteht leider weiterhin. Ich kann das notfalls ignorieren, aber beim Beenden und Benutzen von SaveFile-Dialogen tritt der Fehler wieder auf. Ist dann schon etwas nervig.

    Microsoft AppVerfier habe ich noch in der Liste vergessen.



  • Kannst du dir im C++ Builder (sobald der Haltepunkt erreicht wurde) eine Liste der geladenen Module (EXE, DLL) anzeigen lassen (so wie beim VS View DLLs and executables in the Modules window )?
    Evtl. ist da noch eine ungewöhnliche dabei?



  • At first glance I don't see an uncommon module...

    ntdll.dll, VERIFIER.dll, vrfcore.dll, VFBASICS.dll, KERNEL32.dll, KERNELBASE.dll, ADVAPI32.dll, msvcrt.dll, SECHOST.dll, RPCRT4.dll, SspiCli.dll, CRYPTBASE.dll, bcryptPrimitives.dll, VERSION.dll, NETAPI32.dll, WINSPOOL.DRV, COMDLG32.dll, COMCTL32.dll, combase.dll, GDI32.dll, AppCore.dll, ucrtbase.dll, win32u.dll, bcrypt.dll, gdi32full.dll, PROPSYS.dll, SHCORE.dll, IPHLPAPI.DLL, msvcp_win.dll, OLEAUT32.dll, USER32.dll, SHLWAPI.dll, SHELL32.dll, CFGMGR32.dll, Windows.Storage.dll, profapi.dll, POWRPROF.dll, UMPDC.dll, CRYPTSP.dll, ole32.dll, WINMM.dll, WINMMBASE.dll, WS2_32.dll, gdiplus.dll, UxTheme.dll, netutils.dll, IMM32.dll, MSCTF.dll, COMCTL32.dll, TextInputFramework.dll, CoreUIComponents.dll, CoreMessaging.dll, NTMARTA.dll, WinTypes.dll, iertutil.dll, KbdHook00.dll,

    • The dll path is C:\WINDOWS\SysWOW64 in most cases.
    • COMCTL32.dll (which is loaded once from v5.82, once from v6.0 for some reason) comes from C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.18362.900_none_71d0bf6f5ae996a8\COMCTL32.DLL
    • gsiplus.dll comes from C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.18362.900_none_5f56e39582231feb\GDIPLUS.DLL
    • KbdHook00.dll might come from my cherry keyboard driver.
    • VERIFIER.dll might be from Microsoft AppVerifier?

    I don't know how to exclude any of those modules, though...



  • @Dediggefedde sagte in Erste Window Message-ID ungültig, owlnext, computerabhängig:

    VERIFIER.dll

    Please start AppVerifier and look if your programm is on the applications list.

    AppVerifier is different from other tools like valgrind or Dr. Memory because if an app is on the applications list AppVerifier will "start" in background whenever app is started.



  • @Quiche-Lorraine
    Thank you very much, that resolved the problem!
    I uninstalled AppVerifier and assumed it would also clear the list, but once I installed it again, my application was still in its list.
    Once I removed the application, saved the setting and recompiled my software (to make sure) the error message vanished.

    @Th69 , @Quiche-Lorraine
    Thank you for the quick answers that narrowed down my problem so efficiently!