![]() |
|
![]() ![]() ![]() |
|
givis22 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 19.10.2010 Репутация: нет Всего: нет |
Захотелось написать небольшое приложение к таск бару для Windows 7.
Взял SDK 7.1 от туда пример deskbands. Дописал нужный мне функционал. При попытке запустить debug в VS2010 пишет приложение не может быть запущено D:\Coding_fxxx\deskbands\Win32\Debug\DeskbandSDKSample.dll Из консоли выполняю D:\Coding_fxxx\deskbands\Win32\Debug\regsvr32.exe DeskbandSDKSample.dll. Сервис успешно стартует. Все функции свои выполняет. (Отображает иконку на таск баре и обрабатывает клики мышкой). Но проводник через 10-20 минут падает с такой ошибкой: Сигнатура проблемы: Имя события проблемы: BEX Имя приложения: explorer.exe Версия приложения: 6.1.7600.16450 Отметка времени приложения: 4aeba271 Имя модуля с ошибкой: DeskbandSDKSample.dll_unloaded Версия модуля с ошибкой: 0.0.0.0 Отметка времени модуля с ошибкой: 4cbbe91e Смещение исключения: 10001950 Код исключения: c0000005 Данные исключения: 00000008 Версия ОС: 6.1.7600.2.0.0.256.48 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789 В примере из sdk работал только с DeskBand.cpp. Поэтому прикрепляю его. Подскажите новичку пожалуйста где искать проблему? Это сообщение отредактировал(а) givis22 - 19.10.2010, 12:39 |
|||
|
||||
givis22 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 19.10.2010 Репутация: нет Всего: нет |
Все проблема решилась.. Окозалось проблема в SDK.. причем начиная с SDK 7.0 (в 7.1 не исправлено до сих пор).
Вот на что нужно заменить (конструктор и деструктор) Описание из за чего это происходит The DLL is getting unloaded due to DllCanUnloadNow saying there are no outstanding references – there are though, so once the DLL is unloaded, the WndProc of the deskband window is still called and that causes the crash. The fix is to have the CDeskBand class increment and decrement references to the global DLL reference count – that will cause DllCanUnloadNow to prevent the deskband DLL from being unloaded when a deskband exists.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |