Есть собственная dll-ка, которая подключается через Lua к Quik. В этой dll динамически подключается еще одна dll (shared memory - https://msdn.microsoft.com/en-us/library/windows/desktop/ms686958(v=vs.85).aspx - как пример). Обновился до последней версии Quik 7.16.3.14 и как итог при повторном запуске Lua скрипта, подключающего dll, вторая dll(shared memory) не подключается:((( Если же удалить скрипт из списка загруженных и добавить по новой, то при первом запуске все срабатывает как и в старой версии. Что могло измениться?
Добрый день. Считаем что 1.dll и 2.dll лежать в одном каталоге в 1.dll должен присутствовать код, который делает примерно следующее (без обработки ошибок): 1.
Код
bool getDllPath(char *out_path, size_t max_size)
{
char path[MAX_PATH] = {};
HMODULE hm = NULL;
if( GetModuleHandleEx( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
(LPSTR) &getDllPath, &hm ) )
{
GetModuleFileName( hm, path, sizeof(path) );
/*
тут надо обрезать из path "1.dll" или "\\1.dll", по вкусу
и скопировать в out_path
*/
.....
return true;
}
return false;
}
2. При успешном выполнении к out_path приклеить "2.dll" и загрузить ее через LoadLibrary
Michael Bulychev написал: Добрый день. Считаем что 1.dll и 2.dll лежать в одном каталоге в 1.dll должен присутствовать код, который делает примерно следующее (без обработки ошибок): 1.
Код
bool getDllPath(char * out_path, size_t max_size)
{
char path[MAX_PATH] = {};
HMODULE hm = NULL;
if ( GetModuleHandleEx( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
(LPSTR) & getDllPath, & hm ) )
{
GetModuleFileName( hm, path, sizeof(path) );
/ *
тут надо обрезать из path "1.dll" или "\\1.dll" , по вкусу
и скопировать в out_path
* /
.. .. .
return true ;
}
return false ;
}
2. При успешном выполнении к out_path приклеить "2.dll" и загрузить ее через LoadLibrary
в path пишется абсолютный путь 1.dll !!! Респект! Все как и ожидалось :)))) Quik не причем, это я изменил в функции LoadLibrary() путь к 2.dll с абсолютно указанного на относительный и даже не подумал... Как-то так :)))