Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переносимость программ Win98->WinNT, Если use ф-ции gdi32.dll. 
:(
    Опции темы
Chingachguk
Дата 4.4.2002, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва




Начал изучение Windows, написал простой примерчик с использованием следующих АПИ из библиотеки gdi32.dll:

- CreateFont;
- SelectObject;
- SetTextColor;
- SetBkColor
- TextOut;

(просто поигрался, выводя текст под разными углами). На win98 все работает, выслал другу посмотреть - у него NT - и не работает ! (он говорит, что программа не хочет запускаться).
Почему ? Я использовал стандартные средства Windows !


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
BearBeer
Дата 4.4.2002, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




приложение консольное?

НА чем писано? Вообсче вопрос больше в "системы" ;)
PM MAIL YIM   Вверх
BearBeer
Дата 4.4.2002, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Про ядро Windows NT

Цитата

Подсистема Win32. Главные компоненты подсистемы Win32 - процесс подсистемы среды и драйвер режима ядра. Процесс подсистемы среды поддерживает:

консольные (текстовые) окна;
создание и удаление процессов и потоков;
работу виртуальной 16-разрядной DOS машины;
иные функции (GetTempFile, DefineDosDevice, ExitWindowsEx и др.).
Драйвер режима ядра поддерживает:

менеджер окон, который управляет отображением окон, выводом на экран, вводом с клавиатуры, от мыши и других устройств, а также передачей пользовательских сообщений приложениям;
интерфейс графических устройств GDI (Graphical Device Interface), библиотека функций для вывода на графические устройства, для рисования текста, линий, фигур и манипуляций графическими объектами;
зависимые от устройств драйверы графики, принтера и видеопорта;
несколько библиотек DLL, которые транслируют документированные функции Win32 API в соответствующие недокументированные вызовы NTOSKRNL.EXE и WIN32K.SYS.
Приложения вызывают стандартные функции для создания окон и кнопок на дисплее. Менеджер окон передает эти запросы драйверам графических устройств через интерфейс графических устройств GDI, где они форматируются для вывода средствами конкретных устройств. GDI обеспечивает набор стандартных функций, позволяющих приложениям общаться с графическими устройствами, включая дисплеи и принтеры, без конкретных знаний о них. GDI интерпретирует запросы приложений на графический вывод и посылает их драйверам графических дисплеев. Этот интерфейс позволяет создавать код приложения, независимый от конкретных устройств и их драйверов.

NTDLL.DLL - это специальная система поддержки DLL - библиотек. Она содержит два типа функций.

Первая группа функций обеспечивает интерфейс к службам NT, которые могут быть вызваны из пользовательского режима. Существует более 200 таких функций, например NtCreateFile, NtSetEvent и т.д. Для каждой из них имеется точка входа в NTDLL.DLL с тем же именем. Внутренний код функции содержит специфичные для архитектуры команды, которые вызывают переход в режим ядра для обращения к реальным службам NT, код которых содержится в NTOSKRNL.EXE.
Вторая группа функций содержит большое количество функций поддержки: загрузчик исполняемых модулей, коммуникационные функции для процессов подсистемы Win32, библиотека функций реального времени пользовательского режима, диспетчер вызовов асинхронных процедур АРС (Asynchronous Procedure Call) пользовательского режима, диспетчер исключений.


POdrobnee zdes': http://www.osp.ru/os/1999/01/06_print.htm

// Udachi  :)
PM MAIL YIM   Вверх
Vit
Дата 4.4.2002, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago




Вроде все функции что ты описал определены для всех версий виндов, а вообще NT и 98 совсем разные системы, они просто попытались API определить так же, но реализация разная. Если програмлешь на VС, VB, Delphi то там библиотеки как правило продуманы так чтоб использовать только ограниченный набор API который работает почти одинаково под всеми виндами, когда спускаешься на уровень использования самих API - тут лезут разногласия со всех сторон, без проверки кода на машинах с разными виндами не обойтись :(


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Chingachguk
Дата 5.4.2002, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва




Спасибо за ответы ! ;)

Приложение не консольное. Графическое. Открываю окошко. В процедуре получения событий окошка жду события WM_PAINT и рисую... Этими вот ф-циями из gdi32.

Странно ... Тем же пакетом (MASM32) я собрал тупейший MessageBox и он работал под NT... А теперь я собрал (дома) им же этот пример с gdi32 и выслал другу - а он грит, не работает ... Ладно, я его заставлю еще раз проверить.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Vit
Дата 5.4.2002, 03:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago




Chingachguk, как я понимаю ты работаешь исключительно на низком уровне, мой тебе совет, Partition Magic - освободи 1Гиг на харде (хотя в принципе будет достаточно 300-500 метров, но он может начать кричать что мало), сделай на нем еще одну Primary (не Extended!;) Partition. Поставь на нее Win2000pro и все программы запускай и на 98 и на 2000 - в противном случае ты запаришься посылать другу прогу и получать у него невразумительное сообщение об ошибке... Слишком многие функции работают по разному, это как ДОС 3.3 с ДОС 6.22 сравнивать - кто работал на них меня поймет - вроде все тоже только часть функций в одной системе отсутствует, часть работает не так, а часть вообще не функции, а так заглушки для будущих разработок...
Только если будешь 2000 ставить ни в коем случае не ставь на ту же Partition что и 98, он ее поломает, даже если ты его в другую папку поставишь, а на разных разделах они прекрасно уживаются.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
BearBeer
Дата 5.4.2002, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




все правильно. Многие системные вызовы различаются.

Архитектура НТ разрабатывалась отличнож от предыдусчих версиж.

ПОетому я и дал ссылку на статью о ядре. Оттуда надо и плясать.
PM MAIL YIM   Вверх
Vyacheslav
Дата 5.4.2002, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва




Цитата(Vit @ 05.4.2002, 03:52)
Только если будешь 2000 ставить ни в коем случае не ставь на ту же Partition что и 98, он ее поломает, даже если ты его в другую папку поставишь, а на разных разделах они прекрасно уживаются.

У меня прекрасно одно время уживались Win2000 и Win98 на одном partition.Не люблю я диски бить. Сейчас для Win2000 купил второй диск


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Vit
Дата 5.4.2002, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago




Нет не уживаются они потому что папка "Program Files", а вместе с ней и "Common Files" становятся общими, да винды сами по себе работают, но например попробуй поставить любую программу кроме пасьянса, ставишь на одни винды она выбивает ее же на других виндах, корректной работы можно добится только на разных разделах.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Wowa
Дата 5.4.2002, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград




Я думаю уживаемость Вин2к и Вин98 можно обсудить в соседней теме!  ;)

Тем более, что тема - неплохая!
PM WWW   Вверх
Chingachguk
Дата 6.4.2002, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва




Спасибо за поддержку ! ;)

Хотел сказать, что я тока-тока учусь винде... Вон, пот со лба утираю после разборок с VxD - малюсенькую задачечку тока сделал. Ну и интерфейсом тоже параллельно маюсь ;) Так что пока это не главное - переносимость, а лучше пока плюнуть, раз так все запущенно - и изучать дальше, верно,
парни ?

А насчет установки на мой жалкий Samsung 1.2 второй винды ... Проще сразу взять болгарку и ... Но в принципе идея верная - если буду писать серьезные вещи, то так и сделаю !

Насчет статьи. Я прочел ее, один раз правда. Честно говоря, во мне только окрепло убеждение "если б знали вы, что за тормозы все виндовые драйвера" от ее прочтения ... Одно время на работе находились вместе я и NT,  не могу сказать, что она меня сильно радовала ... Дохла тоже, только реже 98-ой. А что делать ? © Чернышевский. Видно, все равно придется ...

Еще раз всем спасибо и пардон, Админ, за флейм ! ;)


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Alex101
Дата 8.4.2002, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва




Цитата(Chingachguk @ 04.4.2002, 11:50)
Начал изучение Windows, написал простой примерчик с использованием следующих АПИ из библиотеки gdi32.dll:

- CreateFont;
- SelectObject;
- SetTextColor;
- SetBkColor
- TextOut;

(просто поигрался, выводя текст под разными углами). На win98 все работает, выслал другу посмотреть - у него NT - и не работает ! (он говорит, что программа не хочет запускаться).
Почему ? Я использовал стандартные средства Windows !

У меня работают под 2000-ми, линолиумом и 95 (другие просто не пробовал)
- CreateFont;
- SelectObject;
- TextOut;


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

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


 




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


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

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