Цитата(leporel @ 23.2.2011, 13:45 ) | | Я наверно ошибаюсь, но зачем опять писать LoadLibrary("bla_bla_bla.exe");, если требуется вызвать функцию в уже запущенной программе, я думал это делаеться что то вроде передачей указателя в dll на эту функцию. |
нет. не ошибаешься, просто я тебя не так понял. тогда так
в общем h-нике
| Код | typedef void (*void_func_t)();
|
в dll-ке
| Код | extern "C" void _declspec(dllexport) ShowF( void_func_t func ) { ShowMessage("Hello from dynamic DLL"); func(); }
|
в exe-шнике
| Код | void __fastcall TForm1::Button1Click(TObject *Sender) { void (*ShowF)( void_func_t ); if (dllp) { ShowF = (void(*)(void_func_t))GetProcAddress(dllp, "_ShowF"); if(ShowF) ShowF( funk ); // или ShowF( &funk ); }
}
|
|