![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
была строчка кода
наличие длл проверил, путь тоже всё нормально, но условие не проходит . раньше работало, теперь длл начала зависеть от python27_d.dll и видимо не грузится. Добавлено через 4 минуты и 7 секунд кинул python27_d.dll в ту же папку и заработало. |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
либо python перестал кидать свои библиотеки в системную папку, либо он был неправильно установлен -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
дело в том что я сам собирал python27_d.dll , т.к. он в стандартной поставке не идет.
больше удивляет почему функция LoadLibrary не ругается ,если ей что то не хватает, а просто спокойно выдает нулл. Это сообщение отредактировал(а) mrgloom - 23.5.2012, 15:38 |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 3 Всего: 14 |
для ругани есть GetLastError
-------------------- |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Запомни в Windows если функция WinAPI выполнилась не удачно, то либо она может возвращать код ошибки сама, но для получения кода ошибки надо всегда пользовать GetLastError(); -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
странно в дебаге норм, а в релизе не работает. (не помогает так же кидать python.dll в к основной dll в папку)
GetLastError выдает ошибку 998. Неверная попытка доступа к адресу памяти. Добавлено через 5 минут и 14 секунд
если это важно мне еще пришлось добавить это, для того чтобы скомпилить релиз версию. |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
вроде выяснил, что не грузит мою длл, т.к. там есть вызов функции из питона и она вызывается не успешно, но как это обрабатывать непонятно.
|
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
теперь такая проблема, запуская свою программу на другом компьютере и она открывается и тут же закрывается, с чем это связано вообще непонятно, вероятно с длл или с тем, что фейлится какая то функция в длл.
на компьютере где разрабатывается всё норм. Это сообщение отредактировал(а) mrgloom - 13.6.2012, 13:10 |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
что самое интересное, что при нормальной работе т.е.
Это сообщение отредактировал(а) mrgloom - 13.6.2012, 14:08 |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
GetLastError() имеет смысл вызывать при возникновении ошибки или при специально оговоренных ситуациях. В остальных случаях вызовы не обязаны устанавливать ошибку в 0. То есть ошибочная ситуация не может быть проверена через GetLastError().
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
ну а как можно понять от чего не запускается программа, если она не выводит никакой отладочной информации?
|
|||
|
||||
| GremlinProg |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
m_Module != NULL и есть признак успешного вызова LoadLibrary, вот если бы он не выполнялся, тогда можно было бы посмотреть в GetLastError, чтобы понять, что не так, но не наоборот! т.е. нельзя по GetLastError определить, был ли вызов LoadLibrary успешным, т.к. GetLastError дает код последней ошибки в принципе, т.е. код, который был выставлен функцией SetLastError в последний раз, до вызова GetLastError в недрах LoadLibrary вызывается еще куча функций и любая могла выставить этот LastError, который в самой LoadLibrary допустим, поэтому существует правило: посмотреть в GetLastError сразу после вызова функции только при условии, что функция вернулась неуспешно признак успешности/неуспешности зависит от самой функции, и в документации он отдельно оговорен, как например к LoadLibrary:
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
а можно как то выводить информацию о том каких длл-ок не хватает? если моя длл тянет за собой еще длл-ки, или я должен их грузить вручную? и проверять загрузились ли?
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 6 Всего: 135 |
http://www.dependencywalker.com/ -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
этой программой я и так пользуюсь, а вот в самом коде как? если я из главного .exe загружаю свою библиотеку .dll, а она тянет за собой еще .dll сторонние, то как проверить их наличие? + еще как получить какую либо отладочную информацию от стороннего приложения, а то так часто бывает, что запускаешь какой либо .exe, а он программа просто открывается и закрывается или вообще не открывается и не выдаёт ошибок. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |