Я пишу программу-обертку, которая загружает входные плагины Winamp. До сих пор у меня это работало хорошо с несколькими плагинами, но для некоторых других я получаю сообщение об ошибке во время выполнения, когда пытаюсь вызвать LoadLibrary на DLL плагина. (Похоже, это происходит в основном с плагинами, которые были включены в Winamp.) Появляется диалоговое окно, в котором выдается код ошибки и сообщение выше. Это происходит, например, с плагинами in_flac.dll и in_mp3.dll (которые поставляются с Winamp). Любые идеи о том, как я могу исправить эту ситуацию?
EDIT:
Это в основном перебирает плагины в каталоге и пытается загрузить, а затем освободить каждый из них. Некоторые плагины выдают ошибку, о которой я упоминал выше, а другие нет.
wstring path = GetSearchPath();
FileEnumerator e(path + L"in_*.dll");
while(e.MoveNext()) {
wstring pluginPath = path + e.GetCurrent().cFileName;
MessageBoxW(NULL, pluginPath.c_str(), L"Message", MB_OK);
HINSTANCE dll = LoadLibraryW(pluginPath.c_str());
if(!dll) {
pluginPath = wstring(L"There was an error loading \"") + wstring(e.GetCurrent().cFileName) + L"\":\n" + LastErrorToString();
MessageBoxW(NULL, pluginPath.c_str(), L"Error", MB_OK);
continue;
}
FreeLibrary(dll);
}