Hallo, ich arbeite zur Zeit an einem Windows CE5.0-System, das auf x86-Hardware läuft. Über TCP/IP möchte ich nun ein angeschlossenes Digital-IO-Modul von Phoenix Contacts ansteuern. Für dieses liegt mir eine DLL vor, die unter Windows XP auch bereits funktioniert. Mein Problem liegt nun in der dynamischen Einbindung dieser DLL. Versuche ich dies mit LoadLibrary("meine.dll"), dann bekomme ich ein ungültiges Handle zurück, und als letzten Errorcode 126 (der wohl bedeutet, dass die DLL nicht gefunden wurde, oder die Initialisierung fehlschlug). Da die Prozedur für CE-eigene DLLs im gleichen Verzeichnis einwandfrei funktioniert, frage ich mich nun, ob das überhaupt funktionieren muss, eine DLL von Windows XP auch auf CE zu verwenden, ob ich der Datei erst ein spezielles Attribut verpassen muss, oder diese irgendwie schon in der Entwicklungsumgebung (Embedded Visual C++) registrieren muss (obwohl ich sie erst zur Laufzeit dynamisch laden will). Wenn man tatsächlich eine XP-DLL nicht unter CE verwenden kann, würde mich interessieren, wie man hier ermittelt, wann eine DLL für beide Systeme kompatibel ist bzw. wie man die DLL unter CE verwenden kann. Würde mich freuen, wenn da jemand genaueres zu weiß, denn der Wikipedia-Artikel zu DLLs hilft mir beim Thema Portierbarkeit wenig weiter. Peter
Hi Peter, es ist definitiv so, daß Du eine Win32-DLL nicht unter CE5.0 verwenden kannst. Die DLL muß für CE mit entsprechendem Compiler/Liner compiliert und gebunden worden sein. Gruß Markus
Wie ist denn die Pfadangaben zur DLL? Wenn's eine Relative ist, funktioniert das nicht unter WinCE (zumindest war es bis 3.0 so, dass WinCE keine relative Pfadangaben und auch kein aktuelles Verzeichnis kannte), es muss ein absoluter Pfad angegeben werden.
Danke für eure Antworten. @ Arc Net: Ja, bei den Pfadangaben habe ich so ziemlich alles probiert. Und da sich eine CE-eigene DLL im gleichen Verzeichnis immer problemlos laden ließ, denke ich dass das gepasst hat. @ Markus Volz: Klare Aussage, schade. Leider habe ich meiner Erinnerung nach nur die Header-Files + DLL und keinen Sourcecode, aber das werde ich am Dienstag überprüfen, und mich dann gegebenenfalls an den Support wenden. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.