Форум программистов, компьютерный форум, киберфорум
Программирование драйверов
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Заблокирован

Hello, World и ошибка линковки LNK 2019

10.02.2014, 12:58. Показов 1787. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
#define _X86_
#include "ntddk.h"
 
#pragma comment(lib, "wdm.lib")
#pragma comment(linker, "/ENTRY:DriverEntry")
NTSTATUS DriverEntry(IN PDRIVER_OBJECT theDriverObject,
                     IN PUNICODE_STRING theRegistryPath)
{
    DbgPrint("666");
    return STATUS_SUCCESS;
}
без
C++
1
#pragma comment(linker, "/ENTRY:DriverEntry")
возникает ошибка линковки LNK 2019 может какую либу подключить? а с
C++
1
#pragma comment(linker, "/ENTRY:DriverEntry")
ошибка при выполнении - не найдена точка входа в HAL.dll
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2014, 12:58
Ответы с готовыми решениями:

Шаблон с++ (Ошибка LNK 2019)
Не понимаю в чем ошибка, если оставить объявление шаблона функции и реализацию в main то все работает, но если разбить на файлы...

Работа с tinyxml ошибки LNK 2019 и LNK 2001
всем привет! скачал архив tinyxml, разархивировал в папку проекта затем написал следующий код: #include "stdafx.h" ...

Ошибка LNK 2019 при сборке
Здравствуйте. Набрал код как он показан на сайте. При наборе ошибки не высвечивались, а при сборке выдало это (ошибки). В чём...

7
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
10.02.2014, 13:12
Код какой-то странный. Из "Студии", что ли, компилируете ?
Обычно _X86_, зависимости от wdm.lib и т.д. устанавливаются
автоматически системой сборки, я имею в виду WDK Build Environment.

Цитата Сообщение от ТОрчОК Посмотреть сообщение
ошибка при выполнении - не найдена точка входа в HAL.dll
"Ошибка при выполнении" драйвера - это как вообще ?
На синем экране пишет ?
1
Заблокирован
10.02.2014, 13:25  [ТС]
ага из студии пытаюсь заставить работать а откуда надо? только начал первый день незнаю че к чему

Добавлено через 1 минуту
как я понял нужно только построить а собирать с помощью wdk или?

Добавлено через 5 минут

все видимо понял. SOURCE MAKEFILE и исходник все это в WDK поправьте если неправ
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
10.02.2014, 14:04
Лучший ответ Сообщение было отмечено ТОрчОК как решение

Решение

Цитата Сообщение от ТОрчОК Посмотреть сообщение
все видимо понял. SOURCE MAKEFILE и исходник все это в WDK поправьте если неправ
Да, все правильно.
Качайте и устанавливайте отсюда:

Windows Driver Kit Version 7.1.0
http://www.microsoft.com/en-us... x?id=11800

Сейчас драйверы можно писать напрямую в Visual Studio 2012 и выше, без
лишних хлопот, но действуя таким образом, вы вряд ли научитесь пользоваться
нужными инструментами на полную мощность. Ну и старые системы (XP/Vista,
Server 2003/2008) там уже не поддерживаются. Так что я настаиваю, чтобы
использовалась именно эта версия WDK.

makefile предельно прост:
Code
1
!include $(NTMAKEENV)\Makefile.def
В sources помещаются параметры сборки и перечисляются исходные файлы проекта.
Например:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TARGETNAME=mydriver
TARGETTYPE=DRIVER
 
SOURCES=                     \
    DriverEntry.c            \
    DispatchAny.c            \
    Unload.c                 \
    DispatchReadWrite.c      \
    Buffers.c                \
    Resources.rc
 
TARGETLIBS=                       \
    $(DDK_LIB_PATH)\FltMgr.lib    \
    $(DDK_LIB_PATH)\wdmsec.lib
В простейшем случае достаточно директив TARGETNAME, TARGETTYPE и SOURCES.

Сборка выполняется из командной строки - "Пуск -> Все программы ->
Windows Driver Kit -> Build Environments", ну а дальше конкретная система и
тип сборки, checked или free (это что-то типа debug и release).

Установить драйвер проще всего с помощью встроенной команды sc.
Например:
Code
1
sc create mydriver type= kernel start= demand error= normal binPath= C:\mydriver.sys
Обратите внимание на пробел между опцией и значением, это особенность sc.exe.

Запустить драйвер можно с помощью команды net start.
Например:
Code
1
net start mydriver
Для установки и запуска нужны права администратора.
2
programmer
 Аватар для Thread
2391 / 525 / 69
Регистрация: 01.06.2011
Сообщений: 3,639
18.02.2014, 08:30
Убежденный

Не создавая новой темы,есть такой вопрос,по поводу установки промежуточного NDIS.
Пример passthru из DDK XP устанавливаеться вручную в свойствах сетевой карты как служба через подачу inf файла.Как это дело организовать программно или есть какой установщик?Про ЦП я уже не спрашиваю.
И какова роль dll из примера?Поставил без нее ,в PtReceive по прежнему анализирует IP.
Спасибо!

Добавлено через 3 часа 28 минут
хотя нет.После перезагрузки без dll DebugView не показывает вход в DriverEntry.
Как от неё избавиться,т.е запускать без dll?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
21.02.2014, 14:52
Цитата Сообщение от Thread Посмотреть сообщение
Как это дело организовать программно или есть какой установщик?
Есть driver package installer (dpinst):
http://msdn.microsoft.com/en-u... 85%29.aspx

Это вообще часть стандартного фреймворка для установки драйверов,
там есть и другие компоненты:

Driver Install Frameworks (DIFx)
http://msdn.microsoft.com/en-u... 85%29.aspx

Еще можно с помощью Setup API драйверы устанавливать.
Как именно - ищите в исходниках утилиты devcon, они в свободном доступе,
можно найти в MSDN samples online, а также в пакете WDK.
1
programmer
 Аватар для Thread
2391 / 525 / 69
Регистрация: 01.06.2011
Сообщений: 3,639
21.02.2014, 15:15
Спасибо,рассмотрю.
Использую пока bindview из примеров DDK для установки.
Теперь разбираю EXPASSTHRU PART1.
DLL для PASSTHRU из DDK для работы впринципе и не надо.
Вроде с NDIS не все так сложно как может показаться сразу.

Вот с отладкой бы вопрос прояснить,если можно.
какие инструменты ставить?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
21.02.2014, 23:04
Цитата Сообщение от Thread Посмотреть сообщение
Вот с отладкой бы вопрос прояснить,если можно.
какие инструменты ставить?
WinDbg + символы, ну кофе еще.
Большего джедаям не нужно...
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2014, 23:04
Помогаю со студенческими работами здесь

LNK 2019 ссылка на неразрешенный внешний символ в функции _main; LNK 1120 неразрешенных внешних элементов: 1
#include "stdafx.h" #include <iostream> #include <fstream> #include <string.h> #include "Header.h" using namespace std; ...

Ошибка LNK 2019 - C++ (Visual Studio 2011)
Доброго времени суток. Помогите пожалуйста разобраться. Не удается запустить проект из 3-х файлов. Проект создавался "пустой"....

Ошибка LNK 2019: ссылка на неразрешенный внешний символ
Нужно реализовать структуру данных стек в трех файлах: lib.h(объявление), lib.cpp(описание), main.cpp(тестовая программа). Написал весь...

LNK 2019 в QT
Создаю проект в QT Creator. По умолчанию создаются файлы main.cpp, mylistview.cpp и mylistview.h. Пока все нормально, компиляция запуск -...

error lnk 2019
здраствуйте! решил заняться win api и mfc, открываю книгу "Visual C++. Разработка Windows-приложений с помощью MFC и API-функций" пишу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru