Mit einem ocx in einer Konsolenanwendung
Ich soll schnell zu testen, ist ein ocx. Wie kann ich die drop-ocx in einer Konsole-Anwendung. Ich habe einige tutorials im CodeProject und aber sind unvollständig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicher..es ist ziemlich einfach. Hier ist eine Spaß-app, die ich warf zusammen. Ich nehme an, Sie haben Visual C++.
Speichern test.cpp und kompilieren: cl.exe /EHsc test.cpp
Test mit Ihr OCX müssen Sie entweder #import der Typbibliothek, und verwenden Sie es CLSID (oder nur schwer-code CLSID) in die CoCreateInstance-rufen. Die Verwendung von #import wird auch helfen, definieren Sie beliebige benutzerdefinierte Schnittstellen, die Sie benötigen.
Nicht eine OCX ActiveX-Steuerelement? (etwas, das Sie setzen in ein Formular für die Benutzer zu interagieren)?
Der einfachste Weg den ich kenne um zu testen, COM/ActiveX-Zeug ist die Verwendung von excel. (Ja, ich weiß, es klingt dumm, Bär mit mir)
Alt+F11
starten Sie den Visual Basic-Editor (wenn Sie excel 2007 auf die " Developer-Registerkarte im Menüband SacheDu bist jetzt glücklich in visual basic land...
Tools
Menü, wählen SieReferences
Browse...
um die Datei zu suchen, wenn es nicht mit COM registriert, - Sie können diesen Schritt überspringen, wenn Ihr OCX ist bereits registriert.Insert
Menü, wählen SieUserForm
Toolbox
Fenster mit der rechten Maustaste und wählen SieAdditional Controls
Run
- Menü, führen Sie es.Testen Sie Ihre OCX-und spielen Sie mit ihm.
SPEICHERN Sie DIE EXCEL-DATEI, so dass Sie nicht haben, wiederholen Sie diese Schritte jedes mal.
@orion, das ist so cool. Hätte nie gedacht, dass es der Weg.
Gut @jschroedl das war lustig in der Tat.
Testen der activex-in-Konsole-app ist Spaß. Aber ich denke, es lohnt sich nicht versucht auf diesem Weg. Können Sie die Methoden aufrufen oder festlegen und abrufen der Eigenschaften, die entweder durch die Art @jschroedl erklärt hatte, oder rufen Sie die IDIspatch-Objekt durch die Invoke-Funktion.
Der erste Schritt ist, um GetIDsByName und rufen Sie die Funktion über den Aufruf und die Parameter der Funktion sollte ein array von VARIANTEN, die in der Invoke-formale Parameterliste.
Alles ist fein und dandy. Aber sobald man sich an Ereignisse seiner Abfahrt von dort. Windows-Anwendung erfordert ein Nachrichtensystem, um Ereignisse auszulösen. Auf einer Konsole, die Sie nicht haben. Ich ging den Pfad hinunter zu implementieren EventNotifier für die Ereignisse, wie Sie implementiert eine CallBack-Schnittstelle in klassischem C++ Weg. Aber die Ereignisse nicht erhalten, um Ihre implementierte Schnittstelle.
Ich bin ziemlich sicher, dass dies nicht geschehen kann, auf einer Konsole-Anwendung. Aber ich bin wirklich in der Hoffnung, jemand da draußen haben eine andere Sicht auf die Ereignisse in einer Konsolenanwendung