Dll mit Borland C++ Builder 6 - klappt kein einbinden
-
Hi leute
Ich hab mir jetzt ne dll im C++Builder programmiert, welche ich später in einem MS Visual Studio 6 einbinden möcht, geproggt. (Die 2 versch. Compiler deswegen, weil ich das Projekt im VS hab, ich jedoch was nur im C++ Builder zu laufen gebracht hab)
aber is ja egaljedenfalls, dll compiliert ect., jedoch kann ich die Funktion, die ich exportiere, nicht einbinden.
das is mal der Funktionskopf (drinnen steht eigentlich nix anderes als char*-operationen und 1 funktionsaufruf)#define EXPORT extern "C" __declspec(dllexport) //... EXPORT tDeviceData GetDeviceInformation(wchar_t* ClassName)wobei tDeviceData ein struct ist, das ich auch in der header hab, die ich dann im VS-Projekt einbinde
das einbinden hab ich so erledigt:
HINSTANCE Lib = LoadLibrary("./../PCInfo.dll"); if (!(int)Lib) ShowMessage("Error loading DLL"); tGetDeviceInformation GetDeviceInfo = (tGetDeviceInformation)GetProcAddress(Lib, "GetDeviceInformation"); if (GetDeviceInfo == NULL) ShowMessage("Error loading function"); else { tDeviceData Info = (*GetDeviceInfo)(L"Win32_Processor"); ShowMessage(Info.DeviceName); }Dabei kommt mir immer die Meldung "Error loading function"
Ich hab dann auch schon gesucht und ne lösung mit der .def-Datei gefunden, hat aber auch nix genützt.
Die Funktion lässt sich sowohl im VS als auch im C++Builder nicht laden
Weiß jemand, woran der Fehler liegen könnt?
-
gib mal in der KOmmandozeile "impdef PCInfo PCInfo" ein
und schau dir die Datei PCInfo.def an.
Da müsste dann irgendwo der Name drinstehn, den du bei GetProcAddress benutzen musstMeistens dann "_GetDeviceInformation", aber schau lieber nach
-
Hat geklappt!
Big thx!!