2009-06-11 1 views
0

Ich habe eine COM-Komponente für meine Arbeit erstellt. Ich habe die Komponente auch registriert.DEBUG FEHLER: Runtime benötigt für <name.exe> tritt während cusing COM in VC++ Projekt?

Auf meinem System habe ich zwei VM-Workstations. In meinem ersten Arbeitsplatz funktioniert es gut. In meinem zweiten Arbeitsplatz zeigt es ein Fehlerfeld mit der Nachricht Dieses Programm benötigt eine Rumtime und schließt auf ungewöhnliche Weise Bitte wenden Sie sich an den Anwendungsadministrator. Ich dachte, dass dies daran lag, dass ich die Dll nicht in der zweiten Phase registriert habe, dann habe ich mich registriert und es funktioniert gut.

Als ich versuchte, das gleiche in win2k8 Maschine zu testen, obwohl ich die COM-Komponente erfolgreich registrieren zeigt es die oben genannten erroe Fenster ??

Kann mir jemand helfen, das zu verstehen?

Vielen Dank im Voraus ...

+1

Sie sollten mindestens den genauen Text der Fehlermeldung angeben. – sharptooth

+1

Können Sie bitte zuerst Ihre Tippfehler korrigieren? Diese Frage ist kaum lesbar. –

Antwort

3

Meine Vermutung ist, dass Ihr exe eine andere dll benötigt, die auf einem System vorhanden ist, aber nicht auf der anderen Seite. Auf dem System erhalten Sie den Fehler, verwenden Sie Process Monitor, um Ihre exe zu sehen, bis der Fehler angezeigt wird. Wenn dir keine DLL zur Verfügung steht, solltest du sie dort sehen. Ein anderes Werkzeug, das Sie verwenden können, ist Dependency Walker, das verknüpfte DLLs anzeigen kann, die nicht verfügbar sind, ohne die exe auszuführen.

Wenn eine dll tatsächlich fehlt, sind die häufigen Gründe nicht die VC redistributables-Paket und SysWOW64-System32-Verwechslungen auf 64-Bit-Systemen zu installieren.

+0

w2k8 ist 64-Bit-Maschine und die, die ich exe erstellt habe, ist winn2k3 32-Bit-Maschine ..... ist es reson für diesen Debug-Fehler ??? – Cute

+0

Es könnte sein. Für ausführbare 64-Bit-Dateien lautet das Systemverzeichnis System32. Für ausführbare 32-Bit-Dateien lautet das Systemverzeichnis SysWOW64. System32 befindet sich nicht im Suchpfad (% PATH%) für ausführbare 32-Bit-Dateien und umgekehrt. Dies bedeutet, dass andere benötigte DLLs im falschen Systemverzeichnis nicht verfügbar sind. Dies könnte leicht mithilfe von FileMon oder Abhängigkeitswalker entdeckt werden. – eran

+0

s/FileMon/Prozessüberwachung / – Richard