2016-05-06 10 views
3

Stellen Sie sich vor, wenn ich die Anwendung # 0 starte, führt sie einige Berechnungen aus und nach einiger Zeit startet sie Anwendung # 1, Anwendung # 2, Anwendung # 3. (Es sendet einige Argumente, Objekt an neue Anwendungen.).Wie Debuggen einer Anwendung, die von einer anderen Anwendung gestartet wird? (VB6)

Ich möchte Anwendung # 1 debuggen, aber es muss von Anwendung # 0 gestartet werden.

Wie kann ich das tun? (Ich bin mit Visual Studio 6 & Ich habe den Quellcode & alles über diese Anwendungen)

+0

Sind die erstellten Anwendungen ActiveX-EXE-Anwendungen? – djv

+1

Hört sich an, als ob Sie eine Projektgruppe erstellen und alle Projekte hinzufügen (unter der Annahme, dass alle VB6 sind), dann sollte das tun, was Sie brauchen. – helrich

+0

@Verdolino Ja, sie sind ActiveX-EXE-Anwendungen. – user2617750

Antwort

5

lesen this article die beschreibt, wie ein ActiveX-exe debuggen

Grundsätzlich Sie das ActiveX-exe ausgeführt werden soll, dann einen Verweis auf sie in der rufenden Anwendung hinzuzufügen. Lassen Sie die ActiveX-Exe laufen, weil der Verweis auf den laufenden Prozess ist, nicht auf die kompilierte Exe. Führen Sie jetzt die aufrufende Anwendung aus. Dies ermöglicht es Ihnen, auf Haltepunkten in separaten Instanzen von Visual Studio zu stoppen.

Es ist eine Weile her, aber ich wollte sicherstellen, dass ich es selbst machen kann, und ich kann bestätigen, dass es funktioniert. Also hier ist es:

Machen Sie ein neues Projekt namens Project1. Es wird die ActiveX-EXE-

enter image description here

sind Sie sollten eine Datei Class1 genannt haben, in dem Sie diesen Code setzen werden:

Option Explicit 

Public Function Foo() 
    MsgBox "foo" 
End Function 

nun ein weiteres Projekt machen genannt Projekt2. Dies ist ein Standard-

enter image description here

starten Projekt1. Diese Eingabeaufforderung fragt ab, was beim Start des Projekts zu tun ist. Wählen Sie "Warten auf zu erstellende Komponenten". Klicken Sie auf OK und lassen Sie es laufen.

enter image description here

zu Projekt2 gehen, Projekt-Menü >> Referenzen. Suchen Sie Project1 in der Liste. Aktivieren Sie das Kontrollkästchen. (Sie sehen nicht die Datei-System zu Project1 an diesem Punkt, verwenden Sie einfach die temporäre binäre in der zur Verfügung stehenden Referenzliste!)

enter image description here

nun diesen Code in Project2.Form1 eingeben

Option Explicit 

Private Sub Form_Load() 
    Dim p As New Project1.Class1 
    p.Foo 
End Sub 

Sie können einen Haltepunkt in Project1.Class1.Foo() in der msgbox-Zeile einfügen. Dieser Haltepunkt wird getroffen, wenn Sie Project2 ausführen.

Der von Ihnen hinzugefügte Verweis wird ausschließlich zum Debuggen verwendet. Wenn Sie Ihre Anwendung bereitstellen, sollten Sie die ActiveX-Exe-Binärdateien in Ihr Anwendungsverzeichnis kopieren und direkt auf diese Dateien verweisen.

+1

Gute Antwort. +1 – BobRodes