![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Sur0vy |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 1.10.2009 Репутация: нет Всего: нет |
Доброго времени суток!
Определяю версию программы, используя библиотеку jedi Код примерно такой:
Работает нормально на компьютере, где установлена среда, запускаю на любом другом компьютере Access violation Но это только часть проблемы, добавляю к коду одну строку
И все наоборот: на моем компе с win7 и delphi xe2 вылетает, а на "чистой" XP все нормально работает. Может было у кого-нибудь подобное волшебство? |
||||
|
|||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Это не волшебство. Это нормальное поведение AV. Неверная работа с памятью не всегда приводит к AV. Так что не ищите разницы в компьютерах. Ишите саму ошибку. Очень советую прочитать вот это. Причём полностью и вдумчиво. Это сообщение отредактировал(а) northener - 21.1.2012, 01:32 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
|
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
Sur0vy, на какой строчке вылетает тот самый АВ? Без этой информации можно долго гадать.
Если на другом компе нету делфи, то хотя бы по вставляй туда шоумеседжей, что бы определить... |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Надо бы добавить проверку на успешность получения версии, как-то так:
Это сообщение отредактировал(а) Keeper89 - 21.1.2012, 01:44 |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Извращенцы!
Зачем вам понадобилось помощь джедаев, чтобы получить полную информацию о версии программы? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Подключили всего один модуль, а ты сразу извращенцы
Хорошая объектная обертка. А кому нужна диета - можно прям вырезать GetFileVersionInfo оттуда, вот как вариант. |
|||
|
||||
| БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 5 Всего: 17 |
1. Поиск чего-либо в текущем каталоге - путь мазохиста. Указывайте полный путь. Текущий каталог может смениться в любой момент. В частности, его меняют все диалоги открытия/сохранения файлов, имеющие настройки по умолчанию. 2. Указание литералом того, что можно получать автоматически - плохой стиль. 3. Полное имя своего исполняемого файла можно получить либо из командной строки ParamStr(0), либо из свойства Application.ExeName Это сообщение отредактировал(а) БелАмор - 21.1.2012, 11:22 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
и чем же вам мой вариант не подходит?
Добавлено через 25 секунд а джедаев используют только мазохисты |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
А я всегда советовал брать свою версию из ресурса, а не обращаться к своему файлу.
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Есть мнение, что если человек не может разобраться с объектной обёрткой, то программирование на WinAPI для него - вообще труба.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
|
||||
|
|||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
||||
|
||||
| gesper |
|
|||
![]() "Shарфик" ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 23.2.2005 Репутация: 1 Всего: 2 |
Чем плох такой вариант, как то не разбирался в нем досканально, но давно очень использую и на всех ОС работал, зачем куча кода?
--------------------
...И приколется обломившийся и oбломится приколовшийся... |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Я лично такого не говорил. Более того у джедаев есть весьма много полезного и весьма грамотного. Особенно если использовать их наработки с умом. Возможно используя их библиотеку (начиная с времен RxLib и до нынешнего времени) не столько напрямую, сколько просматривая её исходный код в "учебных" целях. Но вот использовать их компоненты для получения номера версии программы просто глупо. Ведь с помощью WinAPI реализовать получение данной информации возможно на любой версии Дельфи начиная с истоков (т.е. Д1)! И даже в Д1, где приходилось делать "лишние телодвижения" для преобразовании string в PChar и наоборот, такой код состоит из всего 9 строчек!!!
Соглашусь в целом, но не в данном случае. Ссылок на пример получения версии программы через WinAPI во всемирной помойке - миллион и ещё маленькая тележка. И разобраться в этих примерах гораздо проще, ибо те три функции WinAPI, которые там используются достаточно нормально документированы. А вот сторонние "обёртки", как правило страдают в этом плане. Добавлено @ 00:36 Страдает он только неграмотной работой с функциями WinAPI. Это я бы сказал "вариант новичка". Функции WinAPI в данном коде используются как процедуры. Т.е. "Авось и так сойдёт, а писать лишний код лень, да и не понятно как". Это сообщение отредактировал(а) northener - 22.1.2012, 00:51 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |