Einzelnen Beitrag anzeigen

Wapiti

Registriert seit: 26. Jan 2007
15 Beiträge
 
Delphi 2005 Personal
 
#15

AW: Zugriffsverletzung ... in Modul 'comctl32.dll' ...

  Alt 10. Feb 2011, 15:38
Mit dem Manifest sucht er die "neue" mit einer Version größer gleich 6:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
     type="win32"
    name="DelphiApplication"
    version="1.0.0.0"
     processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>
während die "normale" (in der system32) die Versionsnummer 5.82.2900.6028 hat. Das Manifest schaltet nun auf den WinSxS-Ordner (Was ist der WinSxS Ordner) um und findet hier nun unter anderen die neuste Version 6.0.2900.6028. Das ist dann soweit mit allen Details klar.

Wo ist nun der Bug? Die Zugriffsverletzung in den Tiefen der comctl32 taucht bei beiden Komponenten bei einem derartigen Konstrukt auf:
Delphi-Quellcode:
Menu := CreatePopupMenu;
try
  CM.QueryContextMenu(Menu, 0, 1, $7FFF, CMF_EXPLORE or CMF_CANRENAME);
danach geht's normal weiter. Das ganze ist jetzt "einfach nur noch interessant". Ob der Delphi-Compiler oder Windows nun das Problem ist, hilft nicht mehr besonders weiter. In anderer Sprachen/Sprachversionen/Konfigurationen funktioniert es wohl, wie man sieht. Und wieviel Leute verwenden schon diesen Methodenaufruf direkt...
Ralf
  Mit Zitat antworten Zitat