Есть DLL, гордо содержащая одну функцию:
Код:
int Func(char name[257])
{
MessageBox(NULL, name, "Dll", MB_OK);
return -1;
}
Если я ее вызываю так:
Код:
HMODULE DLL;
DLL = LoadLibrary("func.dll");
void (*Func)(LPSTR);
(FARPROC &)Func = GetProcAddress(DLL, "Func");
Func("<text>");
FreeLibrary(DLL);
return 0;
все прекрасно - появляется Message Box.
Но если я пытаюсь вызвать функцию при помощи RunDll32.exe:
rundll32 func.dll,Func "qwe"
появляется ошибка. При этом в функцию не передается строка, а если я буду передавать int то функция будет прекрасно работать.
Так вот, почему не получается так передать строку (хотя в некоторые виндовские функции при вызове из DLL можно передавать строки)?