Проблема с Dll
exe-шник:
typedef int (CALLBACK *PFN_MyFunction)(char *);
void main()
{
HINSTANCE hMyDll;
hMyDll=LoadLibrary("MyDll");
if(hMyDll==NULL)
{
MessageBox(NULL, "Not load dll", "Loading", MB_OK);
}
else
{
PFN_MyFunction pfnMyFunction;
pfnMyFunction=(PFN_MyFunction)GetProcAddress(hMyDll,"MyFunc");
if(pfnMyFunction==NULL)
{
MessageBox(NULL, "Not Found MyFunc", "Loading", MB_OK);
}
else
{
int iCode;
iCode=(*pfnMyFunction)("Hello"); // вызов функции библиотеки по адресу
}
FreeLibrary(hMyDll);
}
}
Текст DLL-ки:
extern "C" int CALLBACK MyFunc(char *str);
int WINAPI DllMain(HINSTANCE hInstance, DWORD fdReason, PVOID pvReserved)
{
return TRUE;
}
extern "C" int CALLBACK MyFunc(char *str)
{
MessageBox(NULL,str,"Function from DLL",MB_OK);
return 1;
}
Может что-то в настройках компилятора не-то, Dll загружается, но функцию MyFunc не находит.
Цитата:
Originally posted by Ivan_Cheremisov
Подскажите пожалуйста, что тут не так..
extern "C" int CALLBACK MyFunc(char *str)
{
MessageBox(NULL,str,"Function from DLL",MB_OK);
return 1;
}
Может что-то в настройках компилятора не-то, Dll загружается, но функцию MyFunc не находит.
Подскажите пожалуйста, что тут не так..
extern "C" int CALLBACK MyFunc(char *str)
{
MessageBox(NULL,str,"Function from DLL",MB_OK);
return 1;
}
Может что-то в настройках компилятора не-то, Dll загружается, но функцию MyFunc не находит.
В DLL писать нужно так :
extern "C" __declspec(dllexport) int MyFunc(char *str)
{
MessageBox(NULL,str,"Function from DLL",MB_OK);
return 1;
}