Почему этот код вызывает призыв к MEMSET?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему этот код вызывает призыв к MEMSET?

Сообщение Anonymous »

Почему memset () называется? to /od < /code> (отключено). < /p>
Ошибка: < /p>

Ошибка Lnk2019: неразрешенная внешняя символа MEMSET, упомянутая в функции "void * __cdecl my_memset (void *, int, ungined __int64)" (? my_memset @@ yapeaxpeaxh_k@z) < /p>
< /blockquote>
код: < /p>
#include

#pragma comment(linker, "/ENTRY:MyEntry")

void *my_memset(void *ptr, int value, size_t count)
{
byte *p = (byte*) ptr;
while ( count-- > 0 )
{
*p++ = value;
}
return ptr;
}

BOOL WINAPI MyEntry (HINSTANCE hInstance, DWORD dwReason, PVOID pvReserved)
{
byte a;
my_memset(&a, 0, 1);
return TRUE;
}
< /code>
asm: < /p>
?my_memset@@YAPEAXPEAXH_K@Z PROC ; my_memset, COMDAT

; 6 : {

$LN11:
push rbx
sub rsp, 32 ; 00000020H
mov rbx, rcx

; 7 : byte *p = (byte*) ptr;
; 8 : while ( count-- > 0 )

test r8, r8
je SHORT $LN2@my_memset
call memset
$LN2@my_memset:

; 9 : {
; 10 : *p++ = value;
; 11 : }
; 12 : return ptr;

mov rax, rbx

; 13 : }

add rsp, 32 ; 00000020H
pop rbx
ret 0
?my_memset@@YAPEAXPEAXH_K@Z ENDP ; my_memset


Подробнее здесь: https://stackoverflow.com/questions/795 ... -to-memset
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»