Вопрос № 18382: Доброе всем придоброе, уважаемые.Суть:
Пишу программу, основной частью которой является преобразование фурье от данных АЦП с параллельного порта. Дровину написал. Связывался поначалу с ней через user/kernel, но вследствии медленности решил выпол...
Вопрос № 18382
Доброе всем придоброе, уважаемые.Суть:
Пишу программу, основной частью которой является преобразование фурье от данных АЦП с параллельного порта. Дровину написал. Связывался поначалу с ней через user/kernel, но вследствии медленности решил выполнять преобразование непосредственно в ядре. Драйвер на С. Сталкнулся с такой проблемой: при описании типов с плав. точкой (напр. float), вылезает ошибка, что не найден external symbol __ftlused. зы.:Все компилится с такой ком. строкой.
cl.exe /Zp /Og /GB /Ot /Gz /TC /Fa /Fo Driver.cpp /link /DRIVER /SUBSYSTEM:NATIVE /ALIGN:32 /out:$(ProjectName).sys /RELEASE /MAP /ENTRY:DriverEntry /NODEFAULTLIB /LIBPATH:f:\MyWork\C++\Dd\GLib\ ntoskrnl.lib
Заранее благодарен.
Отправлен: 17.03.2005, 03:12
Вопрос задал: PavPS (статус: 7-ой класс)
Всего ответов отправлено: 1
Отвечает: __grey__
Здравствуйте, PavPS!
Ключ /NODEFAULTLIB запрещает использование стандартной библиотеки (в том числе библиотеку работы с плавающей точкой).
Напишите где нибудь:
extern "C" int _fltused;
или используйте ассемлерные вставки.
Ответ отправил: __grey__ (статус: 2-ой класс)
Отправлен: 17.03.2005, 18:40 Оценка за ответ: 4 Комментарий оценки: /NODEFAULTLIB - это когда работаешь в режиме ядра запрещает подключать "всяку ерунду" - библиотеки. В ядре ТОЛЬКО ntoskrnl.exe И ВСЁ! Даже спроецираваная в памать ядра ntdll запрещена для импорта в драйверах. вот. Ассемблерные ставки - это не то... похоже в юзвере считать фурье придется...