www.mikrocontroller.net

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


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus Volz (valvestino)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.