• XSS.stack #1 – первый литературный журнал от юзеров форума

неразрешенный внешний символ __aullshr

jingo

HDD-drive
Пользователь
Регистрация
01.09.2019
Сообщения
37
Реакции
8
Гарант сделки
1
вот такая строка кода вызывает ошибку "неразрешенный внешний символ __aullshr"

C:
p_strc->m_overl.OffsetHigh = (DWORD)(p_strc->m_filesize >> 32);

кто знает как с этим бороться?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Эмм. Ну вообще, судя по названию, это функция стандартной библиотеки Си, которая сдвигает 64-битное число на 32-битной платформе. Если ты собираешь без стандартной библиотеки, то тебе придется ее самому реализовать.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если ты собираешь без стандартной библиотеки, то тебе придется ее самому реализовать.
+, в 99% случаев "неразрешенный внешний символ <funk_name>" связан с тем, что не подключен какой-то lib-файл в настройках линковщика. Если используешь Visual Studio, то кликнув мышью по ошибке попадешь на сайт мелкомягких с описанием проблемы и ее решением.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
это функция стандартной библиотеки Си
почему студия ее туда подставляет, это как с мемсетом?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
почему студия ее туда подставляет, это как с мемсетом?
Из-за того, что в коде используется оператор '>>'. Если бы этот оператор использовался для 32-битных чисел, то он скомпилился бы в обычную shr инструкцию. Но для 64-битных чисел в 32-битном проце нет shr, поэтому для того, чтобы это работало, в Си пришлось добавить функцию в стандартную библиотеку и вставлять ее вызов там, где используется этот оператор с 64-битными числами. При компиляции для 64-битного проца эта функция не нужна.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх