.exe auf fremdem Rechner -> "Klasse nicht registriert"
-
Hi!
Wie schon gesagt, wenn ich meine .exe auf einem fremden Rechner ohne BCB ausführe, krieg ich die Meldung "Klasse nicht registriert". Ich hab aber sowohl "Mit Laufzeit-Packages compilieren" als auch "Dynamische RTL verwenden" deaktiviert.
Kann es vielleicht daran liegen, dass ich ChartFX benutze?
-kaljinka-
-
Auch ohne mich mit BCB auszukennen kann ich dir prophezeien das das wohl an
fehlenden COM-Komponenten liegt.
-
Wieso COM-Komponenten?
Und was heißt des jetzt? Was muss ich tun, damit ich's zum Laufen krieg?
Es muss doch irgendwie gehn!-kaljinka-
-
Installier ChartFX auf dem anderen Rechner.
-
Hallo
wenn du die Hilfe zu chartfx gelesen haettest waere diese Frage gar nicht noetig gewesen.
CFX32.OCX ist das was du suchst
diese OCX muss auf dem Zielrechner registriert werden
(per Hand oder per Setup)Zeitdauer meiner Suche:
BCB starten ca. 1 min
ActiveX Palette - chartfx anklicken 30 s
welche Hilfedatei zustaendig ist 30 s
suchen dieser Hilfedatei auf dem Rechner 1 ca. min
aufruf der Hilfedatei suchen nach ocx 1 min
dh nach ca 4-5 min Loeseung gefundenMfG
Klaus
-
Gibt's da nicht noch nen anderen Weg? Es soll ja nicht nur auf einem anderen Rechner laufen, sondern auf jedem, auf dem's gestartet wird!
Woher krieg ich denn ne Installationsdatei für ChartFX? Bei mir war des beim BCB(5) dabei. Ich hab mir da bis jetzt noch keine Gedanken drüber gemacht, dass des auf nem anderen Rechner gar nicht laufen könnte!
Was is des dann überhaupt für ein Blödsinn? In der ganzen Hilfe zu ChartFX hab ich dadrüber nix gelesen!
Brauch schnell Hilfe, sonst muss ich wieder von vorn anfangen und das Programm muss bis allerspätestens Mi fertig sein!
-kaljinka-
-
regsvr32 CFX32.OCX
-
Danke erstmal!

KlausB schrieb:
wenn du die Hilfe zu chartfx gelesen haettest waere diese Frage gar nicht noetig gewesen.
Ich hab die Hilfe auch gelesen, aber hab halt noch nie ActiveX-Komponenten verwendet. Ich nehm an, ich hätte es aus dem hier schließen sollen:
(Bin ich aber nicht draufgekommen.)Chart FX includes the following files
CFX32.OCX (OLE Control)
CFX32.LIC (License file)
CFXOCX.PAS (Include File. Contains all the constants needed to work with Chart FX)Wie registrier ich denn nun eine OCX-Datei auf nem Rechner? Okay, regsvr32.exe cfx32.ocx. Aber wie führ ich des aus? Im command?
-kaljinka-
-
Kaljinka schrieb:
Im command?
Geht wohl auch, aber Start|Ausführen reicht.
Gruß,
Alexander
-
Hmm.. wie krieg ich na des mit Start|Ausführen in meinen Code?
Ich hätt gedacht mit ShellExecute und dann cmd.exe aufrufen aber des funktioniert nicht recht. Er startet zwar, aber führt den Befehl nicht aus:ShellExecute(NULL, "open", "C:\\WINDOWS\\system32\\cmd.exe", "regsvr32.exe cfx32.ocx", "C:\\WINDOWS\\system32", SW_SHOW);Stimmt des so? Oder muss ich für lpDirectory den Pfad der ocx angeben? Es passiert aber auch nix, wenn ich für lpParameters einen anderen Befehl wie shutdown eingeb.
Kann man denn irgendwo überprüfen, ob die ocx schon installiert ist?
-kaljinka-
-
ShellExecute(NULL, "open", "regsvr32.exe", "cfx32.ocx", NULL, SW_SHOW);
-
Hallo
verwende doch einen Installer (Inno oder InstallShield)
da kannst du sowas ganz einfach einstellenMfG
Klaus
-
Is des net zuviel Aufwand, wenn ich nur auf diese ActiveX-Komponente prüfen will?
Ich könnte doch schaun, ob die cfx32.ocx in C:\WINDOWS\system32 liegt, wenn nicht, dann installieren.Muss ich dann das Projekt mit Laufzeit-Packages kompilieren? Dann muss ich ja die wieder mitliefern, oder?
-kaljinka-
-
Kaljinka schrieb:
Is des net zuviel Aufwand, wenn ich nur auf diese ActiveX-Komponente prüfen will?
Genau das machen gute Installationsprogramme für Dich. D.h. der Aufwand für Dich ist eher kleiner.
Gruß,
Alexander
-
Hallo
Aufwand bei Inno-Setup ca 1 min

MfG
Klaus
-
Okay, aber das Programm gehört zu einer Facharbeit und ich will halt net, dass der, der's testet, erst was installieren muss (außer evtl. der ActiveX-Komponente).
Ich hab's momentan so gelöst und es funktioniert bisher:
Das Projekt mit Laufzeit-Packages compiliert (sonst krieg ich ja den Fehler "Unbekannte Schnittstelle"), die EXE zusammen mit dclocx50.bpl und vcl50.bpl auf nen USB-Stick und dazu noch die ocx-Datei und ne bat-Datei, die sie installiert.Kann man des so lassen? Wenn ich die bat-Datei auf dem anderen Rechner ausführ, läuft das Programm hinterher einwandfrei.
-kaljinka-
-
Dann kannste das registrieren der OCX auch vom Programm machen lassen -> noch eine datei weniger
-
Ja, aber dann müsste ich ja abfragen, ob die OCX bereits registriert ist. So spar ich mir des halt. Oder gibt's ne einfache Möglichkeit des abzufragen?
-kaljinka-
-
Wenn ich mit FindFirstFile vor dem Programmstart prüfen will, ob sich die Datei cfx32.ocx in C:\\WINDOWS\\system32 befindet, wo muss ich dann des hinschreiben? FormCreate is wahrscheinlich zu spät?
-kaljinka-
-
Es ist doch völlig egal ob es schon registriert ist. Nochmal registrieren ist doch nicht schlimm und führt bei regsvr32 zu keiner Fehlermeldung.