Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Совместимость с XP и Vista, Совместимо с XP, a с Vista несовместимо! 
:(
    Опции темы
Newo
Дата 24.12.2008, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Здравствуйте!

У меня возникла проблема. Я работаю в Windows XP SP2 x32. Написал одну программу, в WinXP работает нормально. Однако многие люди пишут про несовместимость этой программы с WinVista. Вылезает окошко с надписью: "Параметр задан неверно". Вот скриншот (сделан не мною): http://s53.radikal.ru/i141/0812/71/008cb96b700f.jpg . Пробовал компилить как Delphi 7, так и Delphi 2009.... Все одно и то же - на Висте не работает!

Подскажите, пожалуйста, как наладить совместимость с WinVista?

Заранее спасибо!
PM MAIL   Вверх
CodeMonkey
Дата 24.12.2008, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Это совершенно общее сообщение, которое ничего не говорит о причине ошибки.
Расскажите больше о программе: что она делает, какие используются компоненты, в какой момент показывается ошибка, если она показывается, например, при нажатии на кнопку - приведите код.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Newo
Дата 24.12.2008, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 24.12.2008,  00:33)
Это совершенно общее сообщение, которое ничего не говорит о причине ошибки.
Расскажите больше о программе: что она делает, какие используются компоненты, в какой момент показывается ошибка, если она показывается, например, при нажатии на кнопку - приведите код.

Программа для обработки текстовых файлов (с ключевыми словами, но это уже мелочи))). 
Такая ошибка выдается сразу при запуске программы. 

Используются потоки (TThread) и соединение с интернетом. Т.к. в работе с сетью я еще не силен, воспользовался валявшейся в сети готовой функцией загрузки файла:
Код

function GetInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
   Result:=False;
   sAppName := ExtractFileName(Application.ExeName);
   hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
         nil, nil, 0);
   try
      hURL := InternetOpenURL(hSession,
      PChar(fileURL),nil,0,0,0);
      try
         AssignFile(f, FileName);
         Rewrite(f,1);
         repeat
            InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
            BlockWrite(f, Buffer, BufferLen)
         until BufferLen = 0;
         CloseFile(f);
         Result:=True;
      finally
      InternetCloseHandle(hURL)
      end
   finally
   InternetCloseHandle(hSession)
   end
end;


Из стандарных модулей подключаю:
Код

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, Menus, ComCtrls, WinInet, ShellApi;


Это сообщение отредактировал(а) Newo - 24.12.2008, 01:17
PM MAIL   Вверх
Данкинг
Дата 24.12.2008, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Цитата(Newo @  24.12.2008,  00:19 Найти цитируемый пост)
Параметр задан неверно

Параметр чего именно? Что программа пытается такого сделать-то? Аж самому интересно!


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Newo
Дата 24.12.2008, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Цитата(Данкинг @ 24.12.2008,  00:54)
Цитата(Newo @  24.12.2008,  00:19 Найти цитируемый пост)
Параметр задан неверно

Параметр чего именно?

Не знаю.
PM MAIL   Вверх
nmn
Дата 24.12.2008, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: нет
Всего: 1



поставить vista и под отладчиком посмотреть что же все таки происходит, иначе очеь сложно если возможно
PM Skype   Вверх
Frees
Дата 24.12.2008, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



может попробывать запускать с правами админа


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Poseidon
Дата 24.12.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(Frees @  24.12.2008,  09:12 Найти цитируемый пост)
может попробывать запускать с правами админа
В Висте все немного по другому. Если программе нужен админский доступ, Виста сама попросит об  этом.

"Параметр задан неверно" - очень похоже на запуск программы с ярлыка, в котором указан параметр запуска.

Цитата(Newo @  24.12.2008,  00:54 Найти цитируемый пост)
Такая ошибка выдается сразу при запуске программы. 
В таком случае не мешало бы увидеть все процедуры, выполняемые при запуске. OnCreate, OnShow, OnPaint и т.п.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
CodeMonkey
Дата 24.12.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Poseidon @  24.12.2008,  10:10 Найти цитируемый пост)
"Параметр задан неверно" - очень похоже на запуск программы с ярлыка, в котором указан параметр запуска.

Вообще-то это на 99% ERROR_INVALID_PARAMETER, которая получается, когда в функцию WinAPI передается недопустимый или неверный параметр. Но конкретно это может быть что угодно.

Newo, можете показать, какой код у вас выполняется при запуске программы? Т.е. это содержимое DPR файла, а также что Poseidon перечислял.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Frees
Дата 24.12.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Цитата(Poseidon @  24.12.2008,  12:10 Найти цитируемый пост)
В Висте все немного по другому. Если программе нужен админский доступ, Виста сама попросит об  этом.

это если научиш прогу просить админа

сама виста просить админа не будет а выдаст ошибку 

memo1.lines.savetofile('c:\1.txt');

даст ошибку а не попросит пав админа


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
CodeMonkey
Дата 24.12.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Frees @  24.12.2008,  12:14 Найти цитируемый пост)
сама виста просить админа не будет а выдаст ошибку

Это не всегда верно.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
lukas
Дата 24.12.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Frees, если для программы сделать инсталятор и зарегистрировать в системе в списке программ то никаких ошибок не будет. У меня по крайней мере не было.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Newo
Дата 24.12.2008, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



nmn, ну мало ли... Например, вдруг кто-нибудь встречался с такой проблемой...

PoseidonCodeMonkey, Вот код kwk.dpr (по сути при запуске подключаюсь с сайту, скачиваю txt-файлик, в котором лежит номер последней версии и url баннера, после чего гружу баннер): 

Код

*удалено*


Это сообщение отредактировал(а) Newo - 27.12.2008, 01:28
PM MAIL   Вверх
Akella
Дата 24.12.2008, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(Poseidon @  24.12.2008,  10:10 Найти цитируемый пост)
Если программе нужен админский доступ, Виста сама попросит об  этом.

не попросит, прост дас программе по рукам, поверь

Добавлено через 24 секунды
Причём зависит от того, установлен ли SP1
PM MAIL   Вверх
Newo
Дата 11.1.2009, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
nmn
Дата 11.1.2009, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: нет
Всего: 1



посмотри в отладке где выбрасывается исключение
PM Skype   Вверх
Newo
Дата 11.1.2009, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Цитата(nmn @ 11.1.2009,  20:28)
посмотри в отладке где выбрасывается исключение

А можно по-подробней, если не сложно? Как это сделать?
PM MAIL   Вверх
CodeMonkey
Дата 11.1.2009, 20:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(nmn @  11.1.2009,  20:28 Найти цитируемый пост)
посмотри в отладке где выбрасывается исключение

Я сомневаюсь, что это исключение. Окно, похоже, показывается ещё до того, как программа получила управление.

Newo, можешь скинуть мне - у меня и Vista и D2009.

Добавлено через 10 минут и 10 секунд
Посмотрел. Это чё такое: {$MAXSTACKSIZE 50000000000} ??? smile Вы чё, с ума сошли? smile))) Просить у системы 50 гигов на стек? Срочно признавайтесь, зачем это здесь стоит  smile 


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Newo
Дата 11.1.2009, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 11.1.2009,  20:35)
Цитата(nmn @  11.1.2009,  20:28 Найти цитируемый пост)
посмотри в отладке где выбрасывается исключение

Я сомневаюсь, что это исключение. Окно, похоже, показывается ещё до того, как программа получила управление.

Newo, можешь скинуть мне - у меня и Vista и D2009.

Отправил линк на рапиду.

PS в исходящих сообщениях не сохраняется - это нормально?))

Добавлено через 5 минут и 3 секунды
Цитата(CodeMonkey @ 11.1.2009,  20:35)
Посмотрел. Это чё такое: {$MAXSTACKSIZE 50000000000} ??? smile Вы чё, с ума сошли? smile))) Просить у системы 50 гигов на стек? Срочно признавайтесь, зачем это здесь стоит  smile

 smile  smile 
Это в модуле Randomizer, так? Убрал, все-равно недостаточно памяти...
PM MAIL   Вверх
CodeMonkey
Дата 11.1.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



P.S. Код вообще страшноват. Особенно, с учётом того, что это D2009. Вы бы лучше D2007 взяли. Поддержка Vista есть и в ней, но она по крайней мере Ansi. А то в D2009 в вашем коде проблемы с Unicode чуть ли не в каждой второй строчке ;)

Цитата(Newo @  11.1.2009,  20:46 Найти цитируемый пост)
PS в исходящих сообщениях не сохраняется - это нормально?)) 

Вроде там галочку для этого где-то ставить надо.

Добавлено через 2 минуты и 28 секунд
P.P.S. По крайней мере я воспроизвёл "Параметр задан неверно".


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Newo
Дата 11.1.2009, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 11.1.2009,  20:51)
P.S. Код вообще страшноват. Особенно, с учётом того, что это D2009. Вы бы лучше D2007 взяли. Поддержка Vista есть и в ней, но она по крайней мере Ansi. А то в D2009 в вашем коде проблемы с Unicode чуть ли не в каждой второй строчке ;)

Изначально я это на Delphi 7 писал... Только сегодня пытался с юникодом разобраться)) Все-равно, сейчас основная проблема в другом...

Добавлено через 3 минуты и 9 секунд
Цитата(CodeMonkey @ 11.1.2009,  20:51)
Добавлено @ 20:54
P.P.S. По крайней мере я воспроизвёл "Параметр задан неверно".

Как? У меня все равно пишет, что недостаточно памяти
PM MAIL   Вверх
CodeMonkey
Дата 11.1.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Newo @  11.1.2009,  20:56 Найти цитируемый пост)
 Все-равно, сейчас основная проблема в другом... 

Так точно. Убираете все MAXSTACKSIZE (у вас их вроде штук 5, наверное оставшиеся 4 - контрольные smile ), на всякий пожарный удаляете cfg и dof, потом делаете build - всё будет работать. Ну, в смысле прога запустится. Проверять работу такого кода я не рискнул ;)

Добавлено через 7 минут и 9 секунд
Пробежался по коду - заметил большое кол-во статических массивов. Подозреваю, что MAXSTACKSIZE вы добавили из-за проблем со стеком. Просто не надо использовать инструменты не по назначению (читай: заворачивать шурупы молотком). Стек не предназначен для хранения больших объёмов данных. Я рекомендую вам вместо адаптации под D2009 взять D2007 и переписать программу на использование динамических массивов ("var A: array of B;" + "SetLength(A, 15000);" + "Finalize(A);").


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Newo
Дата 11.1.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 11.1.2009,  21:00)
Цитата(Newo @  11.1.2009,  20:56 Найти цитируемый пост)
 Все-равно, сейчас основная проблема в другом... 

Так точно. Убираете все MAXSTACKSIZE (у вас их вроде штук 5, наверное оставшиеся 4 - контрольные smile ), на всякий пожарный удаляете cfg и dof, потом делаете build - всё будет работать. Ну, в смысле прога запустится. Проверять работу такого кода я не рискнул ;)

Так, еще раз:
1. удаляю все maxstacksize в модуле randomizer (в другим модулях вроди б нет))).
2. удаляю файлы *.cfg и *.dof (кстати, а чем они мешали?)
3. скомпилить и запустить

После этого всего у меня опять "недостаточно памяти". Что-то не так сделал?
PM MAIL   Вверх
CodeMonkey
Дата 11.1.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Про dpr файл забыли. Там тоже есть.

Добавлено через 3 минуты и 51 секунду
Цитата(Newo @  11.1.2009,  21:08 Найти цитируемый пост)
кстати, а чем они мешали?

Я не посмотрел, но в этих модулях вписываются настройки проекта, в том числе - размер стека для главного потока программы. Дабы не гадать, допустимое там значение или нет - на всякий пожарный мы их удаляем.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Newo
Дата 11.1.2009, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 11.1.2009,  21:10)
Про dpr файл забыли. Там тоже есть.

Дааа!!))) Ура, спасибо))) Почему же тогда, это прекрасно работало в XP?)))

По поводу перехода на d2009: по количеству варнингов, ая сразу понял, что точно намудрил со строками, но с этим уж я разберусь)) Еще раз спасибо!))

Это сообщение отредактировал(а) Newo - 11.1.2009, 21:15
PM MAIL   Вверх
CodeMonkey
Дата 11.1.2009, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Newo @  11.1.2009,  21:14 Найти цитируемый пост)
Почему же тогда, это прекрасно работало в XP?)))

Я не знаю. Может быть, XP вам просто прощала. Но это - явная и причём грубая ошибка.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Newo
Дата 11.1.2009, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 11.1.2009,  21:18)
Может быть, XP вам просто прощала.

И именно поэтому я на нее не обращал внимания в Висте))
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1194 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.