In einer Headerdatei USB_Interface.h kommt bei den folgenden Zeilen:
#ifndef __AFXWIN_H__
#error include \'stdafx.h\' before including this file for PCH
#endif
folgender Fehler:
[C++ Fatal Error] USB_Interface.h(12): F1003 Error directive: include \'stdafx.h\' before including this file for PCH
Hab dann die stdafx.h eingebunden! Hat nichts gebracht kommt trotzdem noch der selbe Fehler!?
Was muß ich denn da machen!?
Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge
Hi!
Ich möchte an der Stelle mal einhaken. Zwar hab' ich weder grossartige Erfahrung mit Dem C++ Builder (meiner ist zu dem seit >2 Jahren dauerverliehen und auch mit VC++ hab' ich mich noch nicht beschäftigt. Trotzdem fallen mir ein paar Dinge auf, die auch mit der ersten frage zusammen hängen.
Erst mal zu den Wahlmöglichkeiten des DLL-Wizards: da geht es natürlich nur um die Art der zu erzeugen DLL. Klartext: dort kann man festlegen, dass eine mit dem C++ Builder erzeugte DLL den MS-spezifischen Anforderungen genügt, so dass man sie mit VC++ nutzen kann.
Daraus kann man nicht shcliessen, dass der C++ Builder VC++ Header verarbeiten können muss...
Wenn ich mir die erste Frage ansehe, geht es doch eigentlich darum eine Fremd-DLL in Borland C++ Builder Quelltexten zu nutzen. OK, die DLL bringt offenbar Headerdateien für VC++ mit, aber ich halte es für warscheinlich, dass die DLL eine ganz normale Windows-DLL ist. Hat man sie im system registriert, dann sollte man sie in den Programmen auch wie eine normale Fremd-DLL nutzen können.
Die Methode um die Funktionen der DLL nutzen zu können hat mr.escape in der ersten Frage beantwortet, bleiben noch die Headerdateien.
Um eine DLL in Windows anzumelden wird das Programm C:\Windows\System\Regsvr32.exe genutzt, das zum Lieferumfang von Windows gehört. Mich wundert allerdings, dass nichts dazu in der Doku zur USB-Interface-Platine steht.
Leider verlassen mich an dieser Stelle meine Praxiskenntnisse, aber wenn ich das zusammenkratze, was ich noch im Hinterkopf, habe, was hier bereits geschrieben wurde und was ich auf die schnelle gelesen habe, dann sollte das Ganze in etwa so ablaufen:
- die DLL muss registriert werden
- man benötigt einer Header-datei für den C++-Builder mit der Deklaration der in der DLL nutzbaren Funktionen
- man kann die Funktionen so aufrufen bzw. einbinden, wie das von mr. escape beschrieben wurde
Wenn der mitgelieferte Header nicht passt, dann wird man ihn für den C++-Builder anpassen müssen. Falls Borlander mitliest, kann er evtl. in diese Richtung weiterhelfen.
Gut zur schnellen Auffrischung fand ich diese von Google gefundene Seite: http://www.inigraphics.net/ini-sc/mswin/awfcsem/kap8.htm
Da geht's gegen Ende um Einbindung von vorhandenen DLLs in eigene Programme.
Gut scheint mir auch diese Fundstelle zu sein: Link
Oder besser noch diese: Link2
Die Suche dahinter ist diese: Link3
Die halte ich allerdings noch für verbesserungswürdig. ;-)
Bis dann
Andreas