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.