Небольшая заметка для новичков освоваивающих cpp,
Если у вас в хедерах идет инициализация системных дифинишенов (например если вы используете boost)
С9499 Warning: macro redefinition EADDRNOTAVAIL see previous definition of errno.hCode:#ifdef WIN32 #include <winsock2.h> #include <errno.h> #define EADDRNOTAVAIL WSAEADDRNOTAVAIL ...
Для того чтобы исправить эту проблему, нужно очистить предыдущий вызов функцией:
те новый код будет:Code:#undef EADDRNOTAVAIL
В программировании я сам новичок но надеюсь кому-нибудь поможет эта информация!Code:#ifdef WIN32 #include <winsock2.h> #include <errno.h> #undef EADDRNOTAVAIL #define EADDRNOTAVAIL WSAEADDRNOTAVAIL ...
ps: кстате никто не знает что за варнинг, и как его поправить?
warning C4244: 'argument' : conversion from 'std::streamsize' to 'unsigned int', possible loss of dataCode:// get length of file IS.seekg( 0, ios :: end ); uint64_t FileLength = IS.tellg( ); // up to 64 fix ? // uint32_t FileLength = IS.tellg( ); if( start > FileLength ) { IS.close( ); return string( ); } IS.seekg( start, ios :: beg ); // read data char *Buffer = new char[length]; IS.read( Buffer, length ); string BufferString = string( Buffer, IS.gcount( ) ); IS.close( ); delete [] Buffer; return BufferString; }
Ругается на строку:
Code:string BufferString = string( Buffer, IS.gcount( ) );




Reply With Quote
Thanks