Forum: PC-Programmierung Laden von spezieller DLL unter Windows CE5


von Peter (Gast)


Lesenswert?

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

von Markus V. (valvestino)


Lesenswert?

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

von Arc N. (arc)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.