Dobrý den,
lze nějak zjistit aktuální cestu v kontextu pluginu tak, aby bylo možné dohrát doplňkovou dynamickou knihovnu (pomoí LoadLibrary) umístěnou ve stejném adresáři jako základní *.spl soubor pluginu?
Nahrání dynamické knihovny
Nahrání dynamické knihovny
-=:|MaD|:=-
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Re: Nahrání dynamické knihovny
To není problém, plugin jen DLL a cestu na DLL lze získat pomocí Win32 API GetModuleFileName.
Další info viz například http://stackoverflow.com/questions/6924 ... at-runtime
Ukázka z PictView:
Další info viz například http://stackoverflow.com/questions/6924 ... at-runtime
Ukázka z PictView:
Code: Select all
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH) // start PictView.spl
{
DLLInstance = hinstDLL;
}
...
BOOL LoadPictViewDll(HWND hParentWnd)
{
TCHAR path[_MAX_PATH];
if (!GetModuleFileName(DLLInstance, path, SizeOf(path)))
{
TRACE_E("GetModuleFileName failed");
return FALSE;
}
_tcsrchr(path, '\\')[0] = 0;
_tcscat(path, _T("\\PVW32Cnv.dll"));
PVW32DLL.Handle = LoadLibrary(path); // load PVW32Cnv.dll
if (!PVW32DLL.Handle)
{
TRACE_E("LoadLibrary(PVW32Cnv.dll) failed");
SalamanderGeneral->SalMessageBox(hParentWnd, LoadStr(IDS_DLL_NOTFOUND),
LoadStr(IDS_ERRORTITLE), MB_ICONSTOP | MB_OK);
return FALSE;
}
...