Zeichencodierung bei der Windows embedded CE Entwicklung

Will man unter C dynamisch eine DLL laden, benutzt man die LoadLibrary-Funktion. Dies sieht dann in der Regel so aus:

HINSTANCE hGetProcIDDLL = LoadLibrary("keybddr.dll");

Unter Windows CE kommt es jedoch zu einer Fehlermeldung:

error C2664: ‘LoadLibraryW’ : cannot convert parameter 1 from ‘char [12]’ to ‘const unsigned short *’

Das Problem liegt bei der Zeichencodierung. Die System-API arbeitet mit Unicode-formatierten Strings, deshalb hilft auch kein simples Casting. Es gibt zwei Lösungsmöglichkeiten um das Problem zu beheben:

HINSTANCE hGetProcIDDLL = LoadLibrary(TEXT("keybddr.dll"));

oder etwas kürzer:

HINSTANCE hGetProcIDDLL = LoadLibrary(L"keybddr.dll");

Der Paramter ist dadurch explizit unicode-formatiert.

Teilen Sie diesen Beitrag

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen