Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Драйвера и классы  (Прочитано 8406 раз)
0 Пользователей и 1 Гость смотрят эту тему.
zss
Участник

ru
Offline Offline

« : 08-07-2004 09:30 » 

1. При написании драйвера хотелось бы использовать классы (а так же new, delete...). Т.к. драйвер пишется на С, а не на С++, то этого сделать не удалось. В одной из книг говорилось, что в статье "C++ Runtime Support for the NT DDK" объясняется как это можно сделать, но я так и не смог найти эту статью. Подскажите пожалуйста как можно создавать классы.

2. Помимо заголовочного файла ntddk.h понадобились структуры из winnt.h (windef.h, windows.h). Но при попытке их подключения происходит конфликт переопределения. Шрайбер говорит, что нельзя вместе с ntddk.h использовать windows.h (но очень нужны структуры - не создавать же собственный *.h файл). Как это можно осуществить ?

Спасибо
Записан
maaaaad
Гость
« Ответ #1 : 08-07-2004 12:51 » 

:new_twist:  :new_shot:
Записан
zss
Участник

ru
Offline Offline

« Ответ #2 : 08-07-2004 16:00 » 

Спасибо за познавательный ответ Я шокирован!
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #3 : 09-07-2004 14:52 » 

Цитата

1. При написании драйвера хотелось бы использовать классы (а так же new, delete...). Т.к. драйвер пишется на С, а не на С++, то этого сделать не удалось. В одной из книг говорилось, что в статье "C++ Runtime Support for the NT DDK" объясняется как это можно сделать, но я так и не смог найти эту статью. Подскажите пожалуйста как можно создавать классы.


http://www.osronline.com/article.cfm?id=57

Тебе нужна RTL для C++.

Цитата

2. Помимо заголовочного файла ntddk.h понадобились структуры из winnt.h (windef.h, windows.h). Но при попытке их подключения происходит конфликт переопределения. Шрайбер говорит, что нельзя вместе с ntddk.h использовать windows.h (но очень нужны структуры - не создавать же собственный *.h файл). Как это можно осуществить ?


Никак- создай свои заголовочные файлы с типами
Записан
zss
Участник

ru
Offline Offline

« Ответ #4 : 14-07-2004 08:41 » 

1. По поводу new & delete нашел статью

http://groups.google.com/groups?q=nebbett+exceptions&hl=en&lr=&ie=UTF-8&selm=3976f1b3%40guardhouse.chbs&rnum=1

2.
Цитата
Никак- создай свои заголовочные файлы с типами

а namespace тоже не поможет ?
к примеру как пишег Гэри Неббет
Код:

#include <windows.h>
namespace NT |
    extern "C" |
        #pragma warning )disable { 4005:
        #include <ntddk.h>
        #pragma warning )default { 4005:
    "
"

using NT{{NTSTATUS;

но что-то у меня не хочет компилиться  Ха-ха-ха
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #5 : 15-07-2004 06:40 » 

Цитата

а namespace тоже не поможет ?
к примеру как пишег Гэри Неббет
Код:

#include <windows.h>
namespace NT {
    extern "C" {
        #pragma warning (disable : 4005)
        #include <ntddk.h>
        #pragma warning (default : 4005)
    }
}

using NT::NTSTATUS;


но что-то у меня не хочет компилиться


namespace- это С++, придется компилить как C++ драйвера, получишь много новых проблем.
Записан
zss
Участник

ru
Offline Offline

« Ответ #6 : 15-07-2004 07:20 » 

Спасибо, понял Показываю язык
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines