![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Newo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
Здравствуйте!
У меня возникла проблема. Я работаю в Windows XP SP2 x32. Написал одну программу, в WinXP работает нормально. Однако многие люди пишут про несовместимость этой программы с WinVista. Вылезает окошко с надписью: "Параметр задан неверно". Вот скриншот (сделан не мною): http://s53.radikal.ru/i141/0812/71/008cb96b700f.jpg . Пробовал компилить как Delphi 7, так и Delphi 2009.... Все одно и то же - на Висте не работает! Подскажите, пожалуйста, как наладить совместимость с WinVista? Заранее спасибо! |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Это совершенно общее сообщение, которое ничего не говорит о причине ошибки.
Расскажите больше о программе: что она делает, какие используются компоненты, в какой момент показывается ошибка, если она показывается, например, при нажатии на кнопку - приведите код. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Newo |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
Программа для обработки текстовых файлов (с ключевыми словами, но это уже мелочи))). Такая ошибка выдается сразу при запуске программы. Используются потоки (TThread) и соединение с интернетом. Т.к. в работе с сетью я еще не силен, воспользовался валявшейся в сети готовой функцией загрузки файла:
Из стандарных модулей подключаю:
Это сообщение отредактировал(а) Newo - 24.12.2008, 01:17 |
||||||
|
|||||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Параметр чего именно? Что программа пытается такого сделать-то? Аж самому интересно! -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Newo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
||||
|
||||
nmn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
поставить vista и под отладчиком посмотреть что же все таки происходит, иначе очеь сложно если возможно
|
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
может попробывать запускать с правами админа
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
В Висте все немного по другому. Если программе нужен админский доступ, Виста сама попросит об этом.
"Параметр задан неверно" - очень похоже на запуск программы с ярлыка, в котором указан параметр запуска. В таком случае не мешало бы увидеть все процедуры, выполняемые при запуске. OnCreate, OnShow, OnPaint и т.п. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Вообще-то это на 99% ERROR_INVALID_PARAMETER, которая получается, когда в функцию WinAPI передается недопустимый или неверный параметр. Но конкретно это может быть что угодно. Newo, можете показать, какой код у вас выполняется при запуске программы? Т.е. это содержимое DPR файла, а также что Poseidon перечислял. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
это если научиш прогу просить админа сама виста просить админа не будет а выдаст ошибку memo1.lines.savetofile('c:\1.txt'); даст ошибку а не попросит пав админа -------------------- Кольцов Виктор Владимирович |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Frees, если для программы сделать инсталятор и зарегистрировать в системе в списке программ то никаких ошибок не будет. У меня по крайней мере не было.
-------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
Newo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
nmn, ну мало ли... Например, вдруг кто-нибудь встречался с такой проблемой...
Poseidon, CodeMonkey, Вот код kwk.dpr (по сути при запуске подключаюсь с сайту, скачиваю txt-файлик, в котором лежит номер последней версии и url баннера, после чего гружу баннер):
Это сообщение отредактировал(а) Newo - 27.12.2008, 01:28 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
Newo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
Вобщем, я установил WinVista, как и посоветовали (полностью ее обновил). Поставил на нее Delphi 2009. При компиляции моя программа ошибок не выдает. Однако при запуске пишет, что недостаточно памяти (хотя в XP по-прежнему запускается, и ест примерно 8мб оперативы).
Кто-нибудь сталкивался с подобным? Вот скриншот: http://s45.radikal.ru/i109/0901/ba/d926bd6a7963.jpg PS могу кинуть в личку исходники проги Заранее спасибо! Это сообщение отредактировал(а) Newo - 11.1.2009, 18:48 |
|||
|
||||
nmn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
посмотри в отладке где выбрасывается исключение
|
|||
|
||||
Newo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
А можно по-подробней, если не сложно? Как это сделать? |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Я сомневаюсь, что это исключение. Окно, похоже, показывается ещё до того, как программа получила управление. Newo, можешь скинуть мне - у меня и Vista и D2009. Добавлено через 10 минут и 10 секунд Посмотрел. Это чё такое: {$MAXSTACKSIZE 50000000000} ??? ![]() ![]() ![]() -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Newo |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
Отправил линк на рапиду. PS в исходящих сообщениях не сохраняется - это нормально?)) Добавлено через 5 минут и 3 секунды
![]() ![]() Это в модуле Randomizer, так? Убрал, все-равно недостаточно памяти... |
||||
|
|||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
P.S. Код вообще страшноват. Особенно, с учётом того, что это D2009. Вы бы лучше D2007 взяли. Поддержка Vista есть и в ней, но она по крайней мере Ansi. А то в D2009 в вашем коде проблемы с Unicode чуть ли не в каждой второй строчке ;)
Вроде там галочку для этого где-то ставить надо. Добавлено через 2 минуты и 28 секунд P.P.S. По крайней мере я воспроизвёл "Параметр задан неверно". -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Newo |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
Изначально я это на Delphi 7 писал... Только сегодня пытался с юникодом разобраться)) Все-равно, сейчас основная проблема в другом... Добавлено через 3 минуты и 9 секунд
Как? У меня все равно пишет, что недостаточно памяти |
||||
|
|||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Так точно. Убираете все MAXSTACKSIZE (у вас их вроде штук 5, наверное оставшиеся 4 - контрольные ![]() Добавлено через 7 минут и 9 секунд Пробежался по коду - заметил большое кол-во статических массивов. Подозреваю, что MAXSTACKSIZE вы добавили из-за проблем со стеком. Просто не надо использовать инструменты не по назначению (читай: заворачивать шурупы молотком). Стек не предназначен для хранения больших объёмов данных. Я рекомендую вам вместо адаптации под D2009 взять D2007 и переписать программу на использование динамических массивов ("var A: array of B;" + "SetLength(A, 15000);" + "Finalize(A);"). -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Newo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
Так, еще раз: 1. удаляю все maxstacksize в модуле randomizer (в другим модулях вроди б нет))). 2. удаляю файлы *.cfg и *.dof (кстати, а чем они мешали?) 3. скомпилить и запустить После этого всего у меня опять "недостаточно памяти". Что-то не так сделал? |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Про dpr файл забыли. Там тоже есть.
Добавлено через 3 минуты и 51 секунду Я не посмотрел, но в этих модулях вписываются настройки проекта, в том числе - размер стека для главного потока программы. Дабы не гадать, допустимое там значение или нет - на всякий пожарный мы их удаляем. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Newo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
Дааа!!))) Ура, спасибо))) Почему же тогда, это прекрасно работало в XP?))) По поводу перехода на d2009: по количеству варнингов, ая сразу понял, что точно намудрил со строками, но с этим уж я разберусь)) Еще раз спасибо!)) Это сообщение отредактировал(а) Newo - 11.1.2009, 21:15 |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Я не знаю. Может быть, XP вам просто прощала. Но это - явная и причём грубая ошибка. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Newo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.12.2008 Репутация: нет Всего: нет |
И именно поэтому я на нее не обращал внимания в Висте)) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |