Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Я вот думаю, вычислять версию OS или м.б. надежнее полностью выкинуть эту CriticalSection и иди она лесом? Сделай класс-обертку для управления. В конструктор передавай секцию, в методе enter() вход в секцию с контролем повторного вызова, в деструкторе освобождение секции. В коде будет примерно так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Если компилятор поддерживает С++ 11, то можно использовать родные std::mutex и std::unique_lock Дмитрий77Потому как понимаю, deadlock схлопотать с этой кухней вероятность ненулевая (даже не на XP), Если одна секция, то deadlock невозможно устроить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:12 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) Version: 8.0.50727.762 Note : This package has the wrong version number (6.0.3790.0) but the contents of the package are the correct Visual Studio 2005 SP1 bits. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:17 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
rdb_devДмитрий77, а ты развернул на тестовой системе тот же vcredist.exe x86, с библиотеками из которого была собрана твоя библиотека? Что говорит об этой ошибке виндовый лог? Ничего не говорит, у меня они "универсальные". Дмитрий77Компилируется в VC++2005 (name="Microsoft.VC80.CRT" version="8.0.50727.762") -потому что собаку с этим съел - для гарантированной совместимости со всеми OS. (На XP/2003 гарантом работоспособности является наличие .Net Framework >=2.0 SP1 - проверено годами, на остальных - по дефолту) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:25 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, в DllMain (DLL_PROCESS_ATTACH) критическая секция инициализирована ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:25 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Дмитрий77(На XP/2003 гарантом работоспособности является наличие .Net Framework >=2.0 SP1 - проверено годами, на остальных - по дефолту)И всё же проверь наличие необходимых версий библиотек в "%SystemRoot%\WinSxS". Здесь удобный инструмент для поиска зависимостей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:29 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Dima TСделай класс-обертку для управления. например так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:30 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Dima TДмитрий77Я вот думаю, вычислять версию OS или м.б. надежнее полностью выкинуть эту CriticalSection и иди она лесом? Сделай класс-обертку для управления. В конструктор передавай секцию, Ну я вроде нашел грамотное решение, исключающее этот "косяк": 20709744 Что-то не так? >Если компилятор поддерживает С++ 11, то можно использовать родные std::mutex и std::unique_lock VS2005 - ясно что не поддерживает Компилируется в VC++2005 (name="Microsoft.VC80.CRT" version="8.0.50727.762") -потому что собаку с этим съел - для гарантированной совместимости со всеми OS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:32 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Dima Tпропущено... Сделай класс-обертку для управления. В конструктор передавай секцию, Ну я вроде нашел грамотное решение, исключающее этот "косяк": 20709744 Что-то не так? Надо следить чтобы количество вызовов Enter и Leave совпадало, иначе блокировка останется. Leave без Enter тоже не рекомендуется вызывать https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms684169(v=vs.85).aspx If a thread calls LeaveCriticalSection when it does not have ownership of the specified critical section object, an error occurs that may cause another thread using EnterCriticalSection to wait indefinitely. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:41 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
rdb_devДмитрий77, в DllMain (DLL_PROCESS_ATTACH) критическая секция инициализирована ? Она в FaxRouteInitialize инициализирована, как в MSDN примере. 20709620 (приложен) >И всё же проверь наличие Чего проверять. У меня клиенты 10 лет по миру эти "сборки" "проверяют", претензий не было. .Net Framework >=2.0 SP1 он устанавливает этот рантайм (.Net 3.5 содержит 2.0 >=SP1, там где .Net 3.5 уже нет (>=4.5) с этим рантаймом тоже все в порядке) !!! Не надо "Redistributable Package". Танцы с бубном при установке 2005-й студии (чтоб она накатала SP1 кажется, но не накатала "Обновление для Виста" и еще пару-тройку крайних "критических" обновлений), чтоб генерила именно эту сборку (на 10-ке надо отключать "Обновление для продуктов MS"). Но в моих топиках про это есть если поищешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:50 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Dima TНадо следить чтобы количество вызовов Enter и Leave совпадало, иначе блокировка останется. Leave без Enter тоже не рекомендуется вызывать Ну так я именно эту задачу там и решил. Причина блокировки была пропуск Enter из-за перехода на метку Exit по условию и запуск Leave с последующим запуском Enter. Для XP это критично, для остальных пофиг, и SDK-писатели на это забили (sdk7.1 она для 7-ки типа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 09:56 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
На 32-битном xp есть ньюансы... Я вот чего еще не могу понять, хотя это сильно специфично Вот эта ф-ция FaxEnableRoutingMethod function Сорри за VB-код: Код: vbnet 1. 2. 3. 4. На 32-битном XP всегда возвращает FALSE, + код ошибки такой Код: vbnet 1. Но прикол в том, что то что от нее просят она как раз делает, т.е. метод включается и выключается как задумано. (на любых других OS включая 32-битный Win2003 такого глюка не происходит, возвращает TRUE). Видимо конечно надо забить, т.к. во-первых XP, а во-вторых отрабатывает то она правильно, но конечно странный глюк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 18:39 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, оффтоп: ты же нормально пишешь на С/С++, ну зачем тебе этот VB/VB.net? Это умершие ЯП, по ним никто особо не подскажет, т.е. или сам стань гуру или бросай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 21:07 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Dima T, Вопрос был по API ф-ции (в принципе уже оффтоп относит. вопроса темы). Можно подумать она на C/C++ чо-то другое вернет. Да не, на C/C++ я очень тяжело пишу. Только в тех случаях, когда нет выбора (как например в случае этой библиотеки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2017, 21:16 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Дмитрий77 Код: vbnet 1. Ошибка свидетельствует об отсутствии факс-файла, на который указывает handle, в списке fax file list. На какой именно метод маршрутизации указывает ROUTEGUID? На тот, который ты реализовал сам через COM/OLE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2017, 09:44 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Dima TДмитрий77, оффтоп: ты же нормально пишешь на С/С++, ну зачем тебе этот VB/VB.net? Это умершие ЯП, по ним никто особо не подскажет, т.е. или сам стань гуру или бросай.Подозреваю, что это у него legacy. Есть уже какая-то немаленькая программа на VB, в которую требуется вкрячить получение факса. Возможно, какая-то самописная программа документооборота. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2017, 09:49 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
rdb_devОшибка свидетельствует об отсутствии факс-файла, на который указывает handle, в списке fax file list. Ух ты как загнул то. Не, понятно что тебе эт не надо, но видимо придется объяснять, потому что не могу этот набор слов спокойно читать. А для наглядности картинка с Win2016 (визуальное управление есть только на Win Server, но работает кухня и на рабочих станциях XP/win10 тоже). FaxEnableRoutingMethod function RoutingGuid -это "метод", например "Store in a folder" или "Print" -для каждого метода свой уникальный GUID FaxPortHandle - возвращается из FaxOpenPort function , в которой есть параметр DeviceId - это факс девайс (напр. Fax Line 0 или Fax Line 1), модем то бишь если по старинке (но не обязательно модем). Короче, первые два параметра в FaxEnableRoutingMethod однозначно задают пару (имя девайса, имя метода). Метод может быть либо Enabled=yes, либо Enabled=no (см. картинку) FaxEnableRoutingMethod как раз и устанавливает yes/no (третий параметр) для пары (имя девайса, имя метода). Все. Ни о каком "факс-файле, на который указывает handle" там речь не идет, это чисто конфигурационная ф-ция. rdb_devНа какой именно метод маршрутизации указывает ROUTEGUID? На тот, который ты реализовал сам На любой. Меня конечно свои интересуют. Что касается XP-32, то yes/no то она там тоже меняет как заказано (функция то отрабатывает), но при этом false+Error2. Но думаю это глюк на кот. надо забить (не говоря о том что эта кухня на клиентах/не серверах xp/win7/win10 несколько "неофициальна", о чем написал здесь ). rdb_devчерез COM/OLE Я как раз счас избегаю Fax Service Extended COM Object Model , хотя они и "рекомендуют" и для того же VB, COM это "свое родное", с COM задолбаешься глюки лечить и ошибки отрабатывать. Вот это Fax Service Client API for Windows 2000 гораздо надежней. Не говоря о том, что для Fax Service Provider API и Fax Routing Extension API COM и VB/Net не применимо в принципе. Хотя была бы лазейка, написал бы эти dll на .Net. rdb_devПодозреваю, что это у негоНе надо меня ни в чем подозревать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2017, 16:56 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Ух ты как загнул то. Не, понятно что тебе эт не надо, ...Пока не надо. Дмитрий77но видимо придется объяснять, потому что не могу этот набор слов спокойно читать.Чот я не обратил внимания, что handle к устройству, а не к файлу. Был невнимателен к чужой проблеме. Дмитрий77RoutingGuid -это "метод", например "Store in a folder" или "Print" -для каждого метода свой уникальный GUID FaxPortHandle - возвращается из FaxOpenPort function , в которой есть параметр DeviceId - это факс девайс (напр. Fax Line 0 или Fax Line 1), модем то бишь если по старинке (но не обязательно модем).RoutingGUID, это, таки, идентификатор зарегистрированного в системе метода маршрутизации факса. Дмитрий77rdb_devНа какой именно метод маршрутизации указывает ROUTEGUID? На тот, который ты реализовал сам На любой. Меня конечно свои интересуют. Что касается XP-32, то yes/no то она там тоже меняет как заказано (функция то отрабатывает), но при этом false+Error2. Но думаю это глюк на кот. надо забить (не говоря о том что эта кухня на клиентах/не серверах xp/win7/win10 несколько "неофициальна", о чем написал здесь ).И ошибка вылазит на XP при попытке включить любой из методов или только твой? При этом, в журнале Security Log системы возникает какая-нибудь запись по этому поводу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 10:25 |
|
||
|
Fax Service + Extension.Dll. Dll(x64) на x64-все OK, Dll(Win32) на Win32 -вышибает службу
|
|||
|---|---|---|---|
|
#18+
rdb_devRoutingGUID, это, таки, идентификатор зарегистрированного в системе метода маршрутизации факса. Естественно. rdb_devИ ошибка вылазит на XP при попытке включить любой из методов или только твой? При этом, в журнале Security Log системы возникает какая-нибудь запись по этому поводу? "Любой" метод ты на XP (или на Win10) без дополнительных танцев так не включишь. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fax\Routing Extensions\Microsoft Routing Extension Что касается FaxRouteEmail(Microsoft Routing Extension), он на этих OS жестко заблокирован в принципе (политика MS в отношении рабочих станций). Что касается FaxRouteStore(Microsoft Routing Extension) и FaxRoutePrint(Microsoft Routing Extension), то там требуется еще соотв. указать папку или принтер, без этого будет Error 1610 (Данные настройки для этого продукта повреждены. Обратитесь в службу поддержки). Для моих методов дополнительного указания чего либо для их включения не требуется (он либо запускает exe если включен, либо не запускает если выключен, а exe уже лезет в "свои настройки"). Но MS-метод можно выключить. Напр. можно выключить FaxRouteStore(Microsoft Routing Extension). Код: vbnet 1. 2. 3. 4. С FaxRouteStore(Microsoft Routing Extension) и на XP при выключении возвращает TRUE. А с моими методами на XP 1) выключает, как запрошено 2) но возвращает FALSE + Err 2 В журнале ничего нет. Если имел ввиду "не as Admin", то это Err.5, об этом речи не идет. Да забить на это надо. Ошибка ложная(на других OS ее не возникает, на Exit я в этом месте кода по любому не иду), функция свое дело все равно делает, академический интерес почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 16:23 |
|
||
|
|

start [/forum/topic.php?fid=57&startmsg=39502316&tid=2018104]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 276ms |
| total: | 548ms |

| 0 / 0 |
