Nano Hash - криптовалюты, майнинг, программирование

Ошибка компоновщика: неразрешенный символ, когда библиотека официально включена

Линкер выдает фатальную ошибку при вызове файла Inject_mod.obj:

NtQuerySystemInformation@16
и
RtlAdjustPrivilege@16

которые были определены в моем ntdll.h, которые я добавил в свой проект извне. Но похоже компилятор/линкер его как-то не видит и т.д.

Использование: VC 2013 на Win8.1, проект изначально создан на Win7

Вот ошибка компоновщика и определение функции в заголовке

UPD: Дерево проводника проекта: http://floomby.ru/s2/setKB5. Некоторые слова были размыты для уверенности. Дополнительные зависимости содержат мой внешний ntdll.h, ведущий к ntdll.lib


  • Не могли бы вы расширить до полных английских предложений. 01.11.2014
  • Я не уверен, что вам следует просто добавить *.lib в проект. Вероятно, вам следует добавить его в зависимости компоновщика в настройках проекта. 01.11.2014
  • возможный дубликат What ошибка неопределенной ссылки/неразрешенного внешнего символа и как ее исправить? 01.11.2014
  • Это внутренние функции реализации Windows, которые не предназначены для использования приложениями и могут быть изменены в версиях Windows. В Windows SDK нет библиотеки импорта, которая объявляет их, у вас нет ntdll.lib, поэтому компоновщик всегда будет жаловаться на них. Единственный способ взломать его — использовать GetProcAddress(), чтобы найти экспортированную функцию в ntdll.dll. 01.11.2014
  • У меня есть собственный проект ntdll.lib, используемый im, и я добавил его в зависимости, и проект «включает». 01.11.2014

Ответы:


1

Вы не можете использовать файл lib, просто скопировав его в представлении решения в Visual Studio.

Вам нужно добавить ntdll.lib или любую зависимость от статической библиотеки на панели компоновщика Input->Additional Dependencies.

Поскольку вы пытаетесь использовать NtQuerySystemInformation имейте в виду, что

[NtQuerySystemInformation может быть изменена или недоступна в будущих версиях Windows. Приложения должны использовать альтернативные функции, перечисленные в этом разделе.]

01.11.2014
  • Я добавил его в компоновщик, конечно. Кстати, спасибо за ссылку. Но у меня есть собственный ntdll.lib, в котором подробно определена NtQuerySystemInformation. Это должно работать, не так ли? 01.11.2014
  • Проверьте подпись, которую вы используете, и убедитесь, что они совпадают 01.11.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..