New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix windows build, add windows GetDefaultDataDir, add files to project #31
Conversation
Merge pull request from orignal/master
вернул назад I2PEndian.h... если 384 *(uint64_t *)(buf + size) = htobe64 (ts); htobe64 - дефайн htonll не объявлен |
Насколько я знаю htonll это какая то нестандартная штука |
fix windows build, add windows GetDefaultDataDir, add files to project
А кстати почему он ругается то? Это файл же в "Streaming.h" есть. |
htonll используется только под виндой в реализации portable_endian.h Насколько я понимаю дело обстоит так: |
Ну htonl и htons это стандартные функции, присутвующие на всех платформах, а вот 64-х разрядных стандартных не было. А нельзя #include <boost/asio.hpp> впихнуть прямо в I2PEndian.h? |
в классе LittleEndian реализации с хабра если заменить оператор присваивания на const T operator = (const T t) то будет работать |
А нельзя просто вызвать два раза htonl, а потом 8-байтный swap? |
как минимум это получится медленнее, потому что htonX это функции ядра винды, а значит дергаются из вне + своп. по-моему самый простой вариант, это поправить оператор( просто там подразумевалось, что на вход идет другой порядок байт, интерфейс не до конца продуман ) и все будет корректно для винды работать (кроме XBOX'ов =) ) |
Это с какой стати функции ядра? Ядру там делать нечего - реально это просто последовательность ассеблерных инструкции для соотвествующего процессора. |
да ошибся. она ДЛЛку не тянет. там вот что) #define _WS2_32_WINSOCK_SWAP_LONGLONG(l) |
mikhail4021, Спасибо... попробовал, работает |
No description provided.