Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge

Borland C++ Builder Fehlermeldung

serc / 19 Antworten / Flachansicht Nickles

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!?

bei Antwort benachrichtigen
du musst... thomas woelfer
der punkt ist, thomas woelfer
Antwort Andreas42
Antwort mr.escape
Antwort ??? serc
Antwort ??? mr.escape
Antwort ??? serc
Antwort ??? mr.escape
Antwort ??? serc
Antwort ??? mr.escape
Antwort ??? serc
mr.escape serc „Antwort ???“
Optionen

Soweit ich das erkennen kann, dient dieser quellcode dazu, um die datei "an21xx.DLL" dynamisch (LoadLibrary/FreeLibrary/GetProcAddress) zu verwenden
int OpenDevice(BYTE DevNumber, char* DriverName, char* ID, char* KeyWord);
int SetInterrupt (BYTE DevNumber,BYTE IntNum,BYTE STATE);
int SetRefreshTime (long RefreshTime);

etc.
Zusätzlich ist noch eine stringübersetzung zwischen pascal und C für die parameterübergabe eingebaut (ConvertStringToPascalDLL/PascalString) die verwendung ist aber rätselhaft (strdup/free, new[]/delete[] ohne das voranstellen der länge o.ä. hätte es auch getan).
Die klasse CUSB_InterfaceApp dient dem "loadtime"-anbinden von "an21xx.dll" im konstruktor von "theApp". Eine freigabe im destruktor scheint aber zu fehlen und ein misserfolg kommt wohl auch nicht in frage (feedback nur visuell durch AfxMessageBox, was durch eine vorhandene variante ersetzt werden müsste).
Alle dies funktionen kann man auch direkt in seinem projekt unterbringen (u.a. durch weglassen von "__declspec(dllexport) __stdcall"), dafür eine extra mini-DLL zu erzeugen ist etwas merkwürdig.
Mit diesem link (unter "msvcrt.lib missing" einfach msvcrt durch AN21xx ersetzen) lässt sich aus der AN21xx.dll die fehlende datei AN21xx.lib (sowie *.exp) erzeugen. Ähnliches sollte auch für "Borland C++ Builder" möglich sein. Dann ist dieser wrapper (USB_Interface.cpp) nicht mehr nötig.
Hier steht z.b. beschrieben, wie man mit "dem Borland-Tool IMPLIB" eine passende import-lib für borland aus der vcc-import-lib (herstellung oben beschrieben, selbst probiert, scheint zu gehen) erzeugt.

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
Antwort ??? serc
Antwort ??? mr.escape
Antwort Andreas42