Debuggen von Shell-Erweiterungen, die mit delphi
Dieser Artikel beschreibt die Details des Debuggens Shell-Erweiterungen, die mit Borland Delphi oder C++ Builder geschrieben.
Einführung
Heute repräsentieren die integrierten Programmierumgebungen - Borland Delphi und Borland C++ Builder eher bequemes Mittel für die Entwicklung von Windows-Shell-Erweiterungen (weiter auf: Shell-Erweiterungen).
Im Gegensatz zu der Microsoft-Entwicklungsumgebung, wo alle Shell-Erweiterung-Code ist eingebettet in der Vorlage generiert mit Hilfe von, Delphi und C++ Builder bietet Ihnen die Möglichkeit, ähnliche Vorlage-Assistenten zu verwenden, sondern bietet auch einen schnellen und einfachen visuellen Ansatz für Shell-Erweiterungen entwickeln, zum Beispiel das Komponenten-Paket (als www.shellplus.com).
In jedem Fall ist die wichtige Frage, das Debuggen von Shell-Erweiterungen. Dieser Artikel wurde geschrieben, um die Programmierer beizustehen, die Borland Delphi ((c++ Builder) entwickelnden Shell-Erweiterungen verwenden. Es wird ebenso nützlich sein, sowohl diejenigen, die den visuellen Ansatz verwenden, und diejenigen, die Schreiben von Shell-Erweiterungen 'von vorne'.
Wie bei jeder anderen DLL sollte das Debuggen Sie die Host-Anwendung für Ihre Shell-Erweiterung angeben. Shell-Erweiterung wird in den Adressraum der Anwendung geladen werden. In unserem Fall ist eine solche Anwendung durch Windows Explorer dargestellt. Wählen Sie die Menüoption Run | Parameter..., drücken Sie die Schaltfläche 'Durchsuchen' und wählen Sie die Explorer.exe-Datei aus dem Windows-Verzeichnis. Nicht beeilen, obwohl Debuggen starten, gibt es viele bedeutende Nuancen voraus.
Sie sollten die erforderliche Debuginformationen in Ihr Projekt einschließen. Dazu öffnen Sie das Fenster (über das Menü Projekt | Optionen...), fahren Sie mit der Registerkarte, und überprüfen Sie in der Gruppe das Element. Es sollte Erzeugung speziellen Daten für das Remotedebuggen, aktivieren die auch für das Debuggen von COM-Anwendungen erforderlich sind. Vergessen Sie nicht, diese Option auszuschalten, da es erheblich die Größe des Moduls erhöht und eine sogar größere Größe-Datei mit der Erweiterung *.rsm, die alle Symbole erzeugt für das Remotedebuggen speichert, wenn Sie fertig sind mit dem Debuggen Ihre Shell-Erweiterungs. Für die Bequemlichkeit der Debuggen hat empfohlen, um in der Registerkarte des Dialogs zu überprüfen. Es erlaubt Ihnen zu verfolgen die interne Arbeit der Module, die nicht in die Liste Ihrer Projekt-Module enthalten waren.
Sie sollten auch beachten Sie die Verfügbarkeit des Quellcodes von Shell-Erweiterung für den Delphi-Debugger halten. Sie sollten in der aktuellen Delphi-Verzeichnis befinden oder der Pfad zu ihnen sollte im Projekt registriert werden | Optionen | Verzeichnisse/Conditionals, Element -.
Nach Abschluss der alle Anpassungen in den Eigenschaften des Projekts sollten Sie das gesamte Projekt neu erstellen (über das Menü Punkt Projekt | Build...).
Debuggen von Shell-Erweiterungen unter Windows XP und Delphi
Wenn Sie Windows XP verwenden, sollten Sie Schwierigkeiten mit Debug-DLL-Bibliotheken haben. Sie sind wie folgt - der Delphi-Debugger wird nicht die Debugsymbole Informationen aus der Bibliothek geladen.
Diesen Fehler bereits für Delphi 7 wurde korrigiert, aber wenn Sie mit früheren Versionen arbeiten, kann hilfreich sein den folgenden Rat: tun Sie alle Vorbereitungen für das Debuggen, wie oben beschrieben, dann Debuggen starten. Sobald die Anwendung gestartet wurde, wechseln Sie zu Delphi und drücken Sie die Tastenkombination Strg + Alt + M Kombination von Tasten. In der geöffneten Liste der geladenen Module Ihr Modul zu finden, mit der rechten Maustaste darauf und wählen Sie Reload Symboltabelle. Geben Sie den vollständigen Pfad zu der DLL in das Fenster, das erscheint, und drücken Sie OK. Die remote Debuggen Symbole-Tabelle neu geladen werden und Sie erhalten die Möglichkeit, die Haltepunkte einrichten und überwachen Ihre Shell-Erweiterung-Arbeit.
MS Windows vorbereiten
Die Träger der Shell-Funktionen ist die Windows Explorer-Anwendung. Auf dem Computerbildschirm sehen Sie solche Objekte als Desktop, Taskleiste und Inhalte der Ordner. Alle diese Objekte werden von der Windows-Explorer-Anwendung unterstützt, und Sie können sehen, dass sein Prozess im Task-Manager.
Die Grenze zu Prozess wird bezeichnet als Explorer.exe. Sie können dort auch sehen, dass manchmal mehrere Kopien dieses Prozesses ausgeführt werden. Nicht überrascht sein - es kommt auf die Windows-Eigenschaften, wie später gezeigt werden wird.
Windows Shell entlädt automatisch eine dynamische Bibliothek, wenn seine interne Zähler gleich NULL ist, sondern es nur nach Ablauf eines bestimmten Zeitraums tritt. Es wird getan, um die Arbeit der Umwelt, zu beschleunigen, aber es ist nicht immer bequem beim Schreiben oder Debuggen von Shell-Erweiterungen im Rahmen eines betrieblichen Systems - bei der Kompilierung einer bereits registrierten Shell-Erweiterung ihrer Datei kann blockierte Autorenpreis erscheinen. Für die operativen Systeme der früheren Versionen als Windows 2000 können Sie durch Fütterung folgende Angaben in das Register dieser Zeit reduzieren:
HKLM
Software
Microsoft
Windows
CurrentVersion
Explorer
AlwaysUnloadDll
Wenn Sie fertig sind mit dem Debuggen Ihre Shell-Erweiterungs vergessen Sie nicht, diese Option auszuschalten, da sie einen schlechten Einfluss auf Windows Produktivität hat.
In jedem operativen System ist es möglich, die folgende Methode zum Starten der Windows-Shell unter Debuggen anzuwenden:
Laden Sie das Projekt für das Debuggen in Delphi.
Wählen Sie 'Ende der Arbeit' aus dem Menü 'Start'.
Drücken Sie gleichzeitig die Tasten STRG + ALT + ENTF, und klicken Sie auf 'Nein' im Dialog 'Ende der Arbeit mit Windows'. Klicken Sie in Windows 2000 auf 'Abbrechen'. Infolgedessen sollte Shell aus dem Speicher des Computers entladen werden (Task-Leiste, Symbole vom Desktop und geöffnete Fenster mit dem Inhalt von Ordnern und Laufwerken verschwindet), aber alle anderen Anwendungen läuft, einschließlich Delphi mit Ihrem Projekt.
Passen Sie alle Eigenschaften, die notwendig für die Shell-Erweiterungen Debuggen, und starten Sie den Debugger. Shell sollte normal starten, aber jetzt wird es unter dem Debugger arbeiten '' s-Steuerelement.
Debuggen von Shell-Erweiterungen unter Windows NT/2000/XP können Sie den Beginn der mehrere Kopien der Windows-Explorer (separate Kopien für Task-Leiste, für jedes Fenster mit dem Inhalt von Ordnern oder Laufwerken, etc..) kann. Infolgedessen werden Sie Debuggen Ihre Shell-Erweiterungen ohne Entladen Taskleiste und Desktop, die viel bequemer ist. Um diese Gelegenheit zu Gründen sollten Sie die folgende Informationen in das Register hinzufügen:
HKEY_CURRENT_USER\
Software\
Microsoft\
Windows\
CurrentVersion\
Explorer\
DesktopProcess(REG_DWORD) = 1
Um das Feature wirksam zu machen sollte Sie abmelden und wieder anmelden. Wenn Sie fertig sind mit Ihrer Shell-Erweiterung-Debuggen nicht vergessen Sie, diese Option auszuschalten, wie es Windows erheblich verlangsamt.
Shell-Erweiterungen Debuggen
Nachdem alle Vorbereitungen wurden Sie getan haben können ausführst (F9) und starten Sie das Debuggen Ihre Shell-Erweiterungs. Richten Sie die Unterbrechung Punkte an den entsprechenden Stellen, verwenden Sie die Schaltflächen 'Programm-Pause' und 'Reset-Programm', falls erforderlich. Es gibt keine anderen Unterschiede zwischen Debuggen Shellerweiterungen und regelmäßige Delphi-Anwendungen debuggen. Auch nicht überrascht sein, wenn gegen das Projekt Debuggen über ein automatisches Windows-Explorer Laden führen. Es ist die Norm Reaktion von Windows auf Fehler beim Beenden eines Explorer-Prozess. Zu den Debugprozess erfolgreich am Ende profitieren Sie von der Art und Weise beschrieben oben (über Start | Ende der Arbeit).
Windows Explorer ist eine Multi-Thread-Anwendung. Für alle Shell-Erweiterung verwendet erzeugt einen separaten Thread, in dem es weiter mit ihm arbeitet. Deshalb nicht überrascht sein, wenn während der schrittweisen Debuggen Sie plötzlich zu einigen anderen Codebereich ausgelöst werden, wo haben Sie vor kurzem gedebuggt, und kehrte an die erste Stelle. Sie können halten Sie den Überblick über Ihre Reisen durch die Threads im Fenster Status Threads, die über das Menü Ansicht geöffnet werden kann | Debuggen von Windows | Fäden.
Wie Sie sehen können, ist die Shell-Erweiterung Debuggen nicht kompliziert. Wir wünschen Ihnen viel Glück bei der Entwicklung von Shell-Erweiterungen nützlicher und erfolgreicher.
Debuggen von Shell-Erweiterungen, die mit delphi
Debuggen von Shell-Erweiterungen, die mit delphi : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Dieser Artikel beschreibt die Details des Debuggens Shell-Erweiterungen, die mit Borland Delphi oder C++ Builder geschrieben.
Einführung
Heute repräsentieren die integrierten Programmierumgebungen - Borland Delphi und Borland C++ Builder eher bequemes Mittel für die Entwicklung von Windows-Shell-Erweiterungen (weiter auf: Shell-Erweiterungen).
Im Gegensatz zu der Microsoft-Entwicklungsumgebung, wo alle Shell-Erweiterung-Code ist eingebettet in der Vorlage generiert mit Hilfe von, Delphi und C++ Builder bietet Ihnen die Möglichkeit, ähnliche Vorlage-Assistenten zu verwenden, sondern bietet auch einen schnellen und einfachen visuellen Ansatz für Shell-Erweiterungen entwickeln, zum Beispiel das Komponenten-Paket (als www.shellplus.com).
In jedem Fall ist die wichtige Frage, das Debuggen von Shell-Erweiterungen. Dieser Artikel wurde geschrieben, um die Programmierer beizustehen, die Borland Delphi ((c++ Builder) entwickelnden Shell-Erweiterungen verwenden. Es wird ebenso nützlich sein, sowohl diejenigen, die den visuellen Ansatz verwenden, und diejenigen, die Schreiben von Shell-Erweiterungen 'von vorne'.
Wie bei jeder anderen DLL sollte das Debuggen Sie die Host-Anwendung für Ihre Shell-Erweiterung angeben. Shell-Erweiterung wird in den Adressraum der Anwendung geladen werden. In unserem Fall ist eine solche Anwendung durch Windows Explorer dargestellt. Wählen Sie die Menüoption Run | Parameter..., drücken Sie die Schaltfläche 'Durchsuchen' und wählen Sie die Explorer.exe-Datei aus dem Windows-Verzeichnis. Nicht beeilen, obwohl Debuggen starten, gibt es viele bedeutende Nuancen voraus.
Sie sollten die erforderliche Debuginformationen in Ihr Projekt einschließen. Dazu öffnen Sie das Fenster (über das Menü Projekt | Optionen...), fahren Sie mit der Registerkarte, und überprüfen Sie in der Gruppe das Element. Es sollte Erzeugung speziellen Daten für das Remotedebuggen, aktivieren die auch für das Debuggen von COM-Anwendungen erforderlich sind. Vergessen Sie nicht, diese Option auszuschalten, da es erheblich die Größe des Moduls erhöht und eine sogar größere Größe-Datei mit der Erweiterung *.rsm, die alle Symbole erzeugt für das Remotedebuggen speichert, wenn Sie fertig sind mit dem Debuggen Ihre Shell-Erweiterungs. Für die Bequemlichkeit der Debuggen hat empfohlen, um in der Registerkarte des Dialogs zu überprüfen. Es erlaubt Ihnen zu verfolgen die interne Arbeit der Module, die nicht in die Liste Ihrer Projekt-Module enthalten waren.
Sie sollten auch beachten Sie die Verfügbarkeit des Quellcodes von Shell-Erweiterung für den Delphi-Debugger halten. Sie sollten in der aktuellen Delphi-Verzeichnis befinden oder der Pfad zu ihnen sollte im Projekt registriert werden | Optionen | Verzeichnisse/Conditionals, Element -.
Nach Abschluss der alle Anpassungen in den Eigenschaften des Projekts sollten Sie das gesamte Projekt neu erstellen (über das Menü Punkt Projekt | Build...).
Debuggen von Shell-Erweiterungen unter Windows XP und Delphi
Wenn Sie Windows XP verwenden, sollten Sie Schwierigkeiten mit Debug-DLL-Bibliotheken haben. Sie sind wie folgt - der Delphi-Debugger wird nicht die Debugsymbole Informationen aus der Bibliothek geladen.
Diesen Fehler bereits für Delphi 7 wurde korrigiert, aber wenn Sie mit früheren Versionen arbeiten, kann hilfreich sein den folgenden Rat: tun Sie alle Vorbereitungen für das Debuggen, wie oben beschrieben, dann Debuggen starten. Sobald die Anwendung gestartet wurde, wechseln Sie zu Delphi und drücken Sie die Tastenkombination Strg + Alt + M Kombination von Tasten. In der geöffneten Liste der geladenen Module Ihr Modul zu finden, mit der rechten Maustaste darauf und wählen Sie Reload Symboltabelle. Geben Sie den vollständigen Pfad zu der DLL in das Fenster, das erscheint, und drücken Sie OK. Die remote Debuggen Symbole-Tabelle neu geladen werden und Sie erhalten die Möglichkeit, die Haltepunkte einrichten und überwachen Ihre Shell-Erweiterung-Arbeit.
MS Windows vorbereiten
Die Träger der Shell-Funktionen ist die Windows Explorer-Anwendung. Auf dem Computerbildschirm sehen Sie solche Objekte als Desktop, Taskleiste und Inhalte der Ordner. Alle diese Objekte werden von der Windows-Explorer-Anwendung unterstützt, und Sie können sehen, dass sein Prozess im Task-Manager.
Die Grenze zu Prozess wird bezeichnet als Explorer.exe. Sie können dort auch sehen, dass manchmal mehrere Kopien dieses Prozesses ausgeführt werden. Nicht überrascht sein - es kommt auf die Windows-Eigenschaften, wie später gezeigt werden wird.
Windows Shell entlädt automatisch eine dynamische Bibliothek, wenn seine interne Zähler gleich NULL ist, sondern es nur nach Ablauf eines bestimmten Zeitraums tritt. Es wird getan, um die Arbeit der Umwelt, zu beschleunigen, aber es ist nicht immer bequem beim Schreiben oder Debuggen von Shell-Erweiterungen im Rahmen eines betrieblichen Systems - bei der Kompilierung einer bereits registrierten Shell-Erweiterung ihrer Datei kann blockierte Autorenpreis erscheinen. Für die operativen Systeme der früheren Versionen als Windows 2000 können Sie durch Fütterung folgende Angaben in das Register dieser Zeit reduzieren:
HKLM
Software
Microsoft
Windows
CurrentVersion
Explorer
AlwaysUnloadDll
Wenn Sie fertig sind mit dem Debuggen Ihre Shell-Erweiterungs vergessen Sie nicht, diese Option auszuschalten, da sie einen schlechten Einfluss auf Windows Produktivität hat.
In jedem operativen System ist es möglich, die folgende Methode zum Starten der Windows-Shell unter Debuggen anzuwenden:
Laden Sie das Projekt für das Debuggen in Delphi.
Wählen Sie 'Ende der Arbeit' aus dem Menü 'Start'.
Drücken Sie gleichzeitig die Tasten STRG + ALT + ENTF, und klicken Sie auf 'Nein' im Dialog 'Ende der Arbeit mit Windows'. Klicken Sie in Windows 2000 auf 'Abbrechen'. Infolgedessen sollte Shell aus dem Speicher des Computers entladen werden (Task-Leiste, Symbole vom Desktop und geöffnete Fenster mit dem Inhalt von Ordnern und Laufwerken verschwindet), aber alle anderen Anwendungen läuft, einschließlich Delphi mit Ihrem Projekt.
Passen Sie alle Eigenschaften, die notwendig für die Shell-Erweiterungen Debuggen, und starten Sie den Debugger. Shell sollte normal starten, aber jetzt wird es unter dem Debugger arbeiten '' s-Steuerelement.
Debuggen von Shell-Erweiterungen unter Windows NT/2000/XP können Sie den Beginn der mehrere Kopien der Windows-Explorer (separate Kopien für Task-Leiste, für jedes Fenster mit dem Inhalt von Ordnern oder Laufwerken, etc..) kann. Infolgedessen werden Sie Debuggen Ihre Shell-Erweiterungen ohne Entladen Taskleiste und Desktop, die viel bequemer ist. Um diese Gelegenheit zu Gründen sollten Sie die folgende Informationen in das Register hinzufügen:
HKEY_CURRENT_USER\
Software\
Microsoft\
Windows\
CurrentVersion\
Explorer\
DesktopProcess(REG_DWORD) = 1
Um das Feature wirksam zu machen sollte Sie abmelden und wieder anmelden. Wenn Sie fertig sind mit Ihrer Shell-Erweiterung-Debuggen nicht vergessen Sie, diese Option auszuschalten, wie es Windows erheblich verlangsamt.
Shell-Erweiterungen Debuggen
Nachdem alle Vorbereitungen wurden Sie getan haben können ausführst (F9) und starten Sie das Debuggen Ihre Shell-Erweiterungs. Richten Sie die Unterbrechung Punkte an den entsprechenden Stellen, verwenden Sie die Schaltflächen 'Programm-Pause' und 'Reset-Programm', falls erforderlich. Es gibt keine anderen Unterschiede zwischen Debuggen Shellerweiterungen und regelmäßige Delphi-Anwendungen debuggen. Auch nicht überrascht sein, wenn gegen das Projekt Debuggen über ein automatisches Windows-Explorer Laden führen. Es ist die Norm Reaktion von Windows auf Fehler beim Beenden eines Explorer-Prozess. Zu den Debugprozess erfolgreich am Ende profitieren Sie von der Art und Weise beschrieben oben (über Start | Ende der Arbeit).
Windows Explorer ist eine Multi-Thread-Anwendung. Für alle Shell-Erweiterung verwendet erzeugt einen separaten Thread, in dem es weiter mit ihm arbeitet. Deshalb nicht überrascht sein, wenn während der schrittweisen Debuggen Sie plötzlich zu einigen anderen Codebereich ausgelöst werden, wo haben Sie vor kurzem gedebuggt, und kehrte an die erste Stelle. Sie können halten Sie den Überblick über Ihre Reisen durch die Threads im Fenster Status Threads, die über das Menü Ansicht geöffnet werden kann | Debuggen von Windows | Fäden.
Wie Sie sehen können, ist die Shell-Erweiterung Debuggen nicht kompliziert. Wir wünschen Ihnen viel Glück bei der Entwicklung von Shell-Erweiterungen nützlicher und erfolgreicher.
Debuggen von Shell-Erweiterungen, die mit delphi
By Wiezutun
Debuggen von Shell-Erweiterungen, die mit delphi : Mehreren tausend Tipps, um Ihr Leben einfacher machen.