Fehlermeldung bei LoadLibrary
-
Hallo Zusammen,
ich bin gerade dabei ein C++ Programm mit eVC++ zu schreiben. Dabei möchte ich den Befehl LoadLibrary ausführen um eine .dll zu laden. Beim Kompilieren kommt folgende Fehlermeldung:
E:\Dokumente und Einstellungen\rrflin\Desktop\CAN_Read_Write_dll\a\dummy\dummyDlg.cpp(117) : error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'char [6]' to 'const unsigned short *'
Der Fehler tritt auf, in der Zeile:
HINSTANCE hm = LoadLibrary("a.dll");Die .dll heißt a.dll. Hier ist der Code mit dem ich Versuche die a.dll zu laden:
#include <stdio.h> #include <windows.h> #include <iostream.h> #include "stdafx.h" #include "dummy.h" #include "dummyDlg.h" #include "a.h" #include "CAN.h" #include "canbusio.h" void CDummyDlg::OnButton1() { // TODO: Add your control notification handler code here typedef char* (*PFUNC_charp)(void); typedef void (*PFUNC_void)(void); //const unsigned short dll_name[6]={'a','.','d','l','l','\0'}; const unsigned short dll_func_name[9] ={'C','A','N','_','I','n','i','t','\0'}; int dll_count=0; char *dll_fp; HINSTANCE hm = LoadLibrary("a.dll"); if (!hm) { //printf("Konnte DLL a.dll nicht laden!\n"); } PFUNC_charp init_plugin = (PFUNC_charp)GetProcAddress((HINSTANCE)hm, &dll_func_name[0]); if (init_plugin != NULL) { //printf ("CAN_Init existiert!\n"); dll_fp=init_plugin(); //const unsigned short *func_name = (unsigned short)&dll_fp; //PFUNC_void function2 = (PFUNC_charp)GetProcAddress((HINSTANCE)hm, func_name); // hier kracht es! //cout << dll_fp << endl; } else //printf("init_plugin() nicht gefunden!\n"); FreeLibrary((HMODULE)hm); }
was mache ich falsch?
Gruß
spacehelix
-
Es wird UNICODE verwendest und deshalb musst Du Deine String für OS-Aufrufe mit "L" versehen (oder Du nimmt _T):
LoadLibrary(L"a.dll")
oeder
#include <tchar.h> LoadLibrary(_T("a.dll"));
-
Danke Jochen es funktioniert.