Re[3]: JNI DLL и MSVCR
От: morgot  
Дата: 13.03.20 14:20
Оценка: 12 (1)
Здравствуйте, vsb, Вы писали:

vsb>А где взять хорошие реализации этих функций? Ну т.е. я, конечно, могу их в две строчки написать сам, но, подозреваю, с современными процессорами там всё гораздо сложней, нужны всякие ассемблерные вставки и тд. Есть какой-нибудь авторитетный файлик, откуда их можно выдрать? Или не заморачиваться и написать тупо циклом?


Так с того же CRT и можно взять. К примеру, вот так
#pragma intrinsic(memset)

#pragma function(memset)
void * __cdecl memset(void *pTarget, int value, size_t cbTarget) {
    unsigned char *p = pTarget;
    while (cbTarget-- > 0) {
        *p++ = value;
    }
    return pTarget;
}


А вообще, смысла нет заморачиваться, не думаю вам несколько тактов процессора сыграют погоду (это же только для объявления переменных, и т.п., типа ZeroMemory).
Тут важно другое — заставить студию подключать именно вашу реализацию, а не с монструозных MSVCRT120.DLL
Отредактировано 13.03.2020 14:22 morgot . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.