AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Zugriffsverletzung ... in Modul 'comctl32.dll' ...

Zugriffsverletzung ... in Modul 'comctl32.dll' ...

Ein Thema von Wapiti · begonnen am 4. Feb 2011 · letzter Beitrag vom 10. Feb 2011
Antwort Antwort
Seite 2 von 2     12
EWeiss
(Gast)

n/a Beiträge
 
#11

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

  Alt 8. Feb 2011, 15:02
Verstehe das Thema nicht so richtig .
Um was geht es dir ?

Hab die Exe getestet kein Absturz und beinhaltet kein Manifest.
Ausgenommen beim Klick auf About (AV read from adress $00000..)

gruss
  Mit Zitat antworten Zitat
Wapiti

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

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

  Alt 10. Feb 2011, 11:38
Bei mir kommt die Schutzverletzung auf drei verschiedenen XP-Rechnern, wenn ich mit der rechtem Maustaste auf eine Datei oder einen Ordner klicke bevor das Popup-Menu erscheint. Mit Manifest ist sie dann weg. Sie kommt nicht, wenn ich auf einen Systemordner klicke. Sie kommt auch nicht, wenn ich in den freien Bereich der Dateiliste klicke.
Ralf

Geändert von Wapiti (10. Feb 2011 um 11:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.016 Beiträge
 
Delphi 12 Athens
 
#13

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

  Alt 10. Feb 2011, 12:21
Jupp, also das Manifest ist einfach nur eine XML-Datei, welche entwerder als Resource in die EXE/DLL reingelinkt oder neben die EXE gelegt wird ( MeineApp.exe.manifest ).

In diesesm Manifest kann man Windows besitmmte Dinge mitteilen, z.B. die Nutzung der neuen comctl32.dll, anstatt der Alten, ob der neue XP-Style genutzt werden soll, dann noch die Dateisystemumleitungen von Vista/Win7, welche COM-DLLs geladen werden sollen (also welche Version davon), welche Rechte (Admin oder nicht) das Programm benötigt usw.

Einige der Möglichkeiten kann man sich in meinem Hier im Forum suchenManifest-Creator und den dort verlinkten MSDN-Einträgen gerne ansehn.

Das alte TXPManifest/XPMan bietet nur die Möglichkeit der neuen ComCtrl32.dll und damit des "neuen" XP-Styles.
Seit Delphi 2010 ( oder 2009? ) kann man auch noch die Admin-Rechte über's Delphi steuern.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

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

  Alt 10. Feb 2011, 15:22
Sein Problem ist das er einen fehler in der 'comctl32.dll' hat wenn er keine Manifest verwendet.
Das Manifest verhindert also das er die "FALSCHE" comctl32.dll initialisiert davon gibt es mehrere Versionen.
Deshalb kommt er nicht drum herum dieses in sein Projekt mit einzubinden.

Nicht alle comctl32 unterstützen XP-Styles.
Und wenn deine komponente darauf ausgelegt ist kommst du nicht um ein Manifest herum.

gruss

Geändert von EWeiss (10. Feb 2011 um 15:25 Uhr)
  Mit Zitat antworten Zitat
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
EWeiss
(Gast)

n/a Beiträge
 
#16

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

  Alt 10. Feb 2011, 16:00
Von was ist CM abgeleitet dein Handler ?

EDIT:
Was mir noch auffällt
Ein in dieser zeile generierter Fehler
Delphi-Quellcode:
Menu := CreatePopupMenu;
try
  CM.QueryContextMenu(Menu, 0, 1, $7FFF, CMF_EXPLORE or CMF_CANRENAME);
hat nichts mit der comctl32.dll zu tun sondern mit der Shell32.dll

gruss

Geändert von EWeiss (10. Feb 2011 um 16:21 Uhr)
  Mit Zitat antworten Zitat
Wapiti

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

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

  Alt 10. Feb 2011, 18:01
Ist ein Stück aus der ShellCtrls.pas der mitgelieferten Demos.
Delphi-Quellcode:
var
  CM: IContextMenu;
  Menu: HMenu;
Ralf
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz