Muss eine C-DLL für ein Windows CE Device speziell kompiliert werden?

Kostas5813

Grünschnabel
Hallo Zusammen,

ich habe eine Anwendung mit VS2008 C# geschrieben für ein Windows CE 6.0 Device.
Funktioniert alles wunderbar. Vom Device Hersteller habe ich ein Stück c-code bekommen,
das sind zwei Methoden um das Backlight Ein-/Auszuschalten. Ein Kollege hat mir daraus
eine C-DLL mit VS2010 erzeugt.
Die DLL kann ich einwandfrei aufrufen wenn ich eine WinForm Anwendung schriebe für PCs.
Wenn ich jedoch die gleiche C-DLL aus einem Win CE Projekt aufrufe, bekomme ich die Fehlermeldung
Can't find PInvoke DLL "Backlight.dll"
Die DLL habe ich in das Programmverzeichnis aber auch in Windows kopiert. Die DLL ist also definitiv da. Ich vermute das hat was mit der C-DLL zu tun.

Deshalb meine Frage, kann es sein dass eine C-DLL anders kompiliert werden muss für Windows CE Geräte? meine Platform ist übrigens X86 nicht ARM!

Code:
[DllImport("Backlight.dll", EntryPoint = "BackLightOFF")]
public extern static void BackLightOFF();

Gruß Kostas
 
Hi.
Deshalb meine Frage, kann es sein dass eine C-DLL anders kompiliert werden muss für Windows CE Geräte? meine Platform ist übrigens X86 nicht ARM!
Die Antwort ist: ja. Windows CE verwendet eine eigene Laufzeitbibliothek, manche Funktionen aus der (üblichen) Laufzeitbibliothek gibt es nicht unter Windows CE.

Man muß das entsprechende Windows (Mobile) SDK installieren um Applikationen / Bibliotheken für Windows CE mit dem Visual Studio erstellen zu können.

Siehe z.B. http://www.techfiles.de/frankpr/Software für Windows Mobile 6 entwickeln.htm

Gruß
 
Zuletzt bearbeitet:
Super Danke.
Ich habe jetzt etwas gesucht und bin mir nicht sicher was ich genau benötige.
Es gibt ein "Windows Embedded CE 6.0 Evaluation Edition" ist vermutlich der Platform Builder.

Eigentlich will ich nur die eine einzige DLL erzeugen und nicht ein komplettes Win CE Image erzeugen.
Anscheinend ist das SDK alleine nicht downloadbar sondern bestandteil vom Platform Builder.

Ist das so?
 
Super Danke.
Ich habe jetzt etwas gesucht und bin mir nicht sicher was ich genau benötige.
Es gibt ein "Windows Embedded CE 6.0 Evaluation Edition" ist vermutlich der Platform Builder.

Eigentlich will ich nur die eine einzige DLL erzeugen und nicht ein komplettes Win CE Image erzeugen.
Anscheinend ist das SDK alleine nicht downloadbar sondern bestandteil vom Platform Builder.

Ist das so?
Das SDK gibt's hier: http://www.microsoft.com/downloads/...3a-a651-4745-88ef-3d48091a390b&displaylang=en

Gruß
 
Dieses SDK habe ich auch schon gefunden, jedoch ist das dass Winidows Mobile 6.0 SDK.
Auf dem Gerät ist nicht das Mobile 6.0 sondern CE 6.0.
Oder ist das SDK für beides gedacht?
 
Dieses SDK habe ich auch schon gefunden, jedoch ist das dass Winidows Mobile 6.0 SDK.
Auf dem Gerät ist nicht das Mobile 6.0 sondern CE 6.0.
Oder ist das SDK für beides gedacht?
Hm, nein das scheinen zwei verschiedene Paar Schuhe zu sein...

Anscheinend mußt du doch den Platform Builder verwenden..

\edit: Vergiss das. Du brauchst explizit für dein Gerät das entsprechende SDK vom Hersteller.

http://msdn.microsoft.com/de-de/library/aa907963%28en-us%29.aspx hat gesagt.:
An SDK for Windows Embedded CE is created by the OEM of a target device. It must provide a set of APIs that a software developer can use to develop software applications for the target device. An SDK may provide APIs that were imported from Platform Builder for CE 6.0 or custom APIs that are developed by the OEM. Information about APIs that were imported from Platform Builder for CE 6.0 is available in the CE 6.0 documentation.

Gruß
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück