DmitryKz
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Отчего может быть такая непонятная ситуация: моя dll-ка импортирует какие-то функции с помощью предоставленной третьей стороной файла lib. Проблема в том, что стоит только вставить в код вызов функции из этой lib, как основное приложение полностью игнорирует мою dll. Код: BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved) { // log we're here FSC_Log("DLLMain_in"); // first call? if (fwdreason!=DLL_PROCESS_ATTACH) return FALSE; // done FSC_Log("DLLMain_out"); return TRUE; } int __stdcall _export DLLStart() { FSC_Log("DLLStart"); // open connection to local SimConnect server HRESULT hr; hr = SimConnect_Open(&hSimConnect, "Dll4Fsx", NULL, 0, NULL, SIMCONNECT_OPEN_CONFIGINDEX_LOCAL); if (hr == S_OK) FSC_Log("Connect success"); else FSC_Log("Connect failed"); // register callback routine for message processing // SimConnect_CallDispatch(hSimConnect, SimConnectProcess, NULL); return 0; } int __stdcall _export DLLStop() { FSC_Log("DLLStop"); return 0; } //--------------------------------------------------------------------------- | Я отметил эту функцию. Стоит её убрать (закомментировать), как дллка обрабатывается основным приложением - это видно из логов, которые заполняет код (функция FSC_Log). Если же включить вызов той функции в код, то логирования не происходит, а запустив длл с отладчиком, видно, что она вообще игнорируется внешним приложением. Тут именно какая-то особенность BDS, так как этот пример скомпилированный в MSVC++2010 Express работает отлично... | Всего записей: 3146 | Зарегистр. 29-09-2005 | Отправлено: 21:34 13-12-2011 | Исправлено: DmitryKz, 21:36 13-12-2011 |
|