Гробница фараона. Бета-версия.
-
Исходники для того и существуют, чтобы их править
rabid rabbit
Не знаю почему CRC получаемый твоим модулем у меня не совпадал с CRC получаемый например WinHex-ом...
Но если немного подправить процедуру генерации таблицы для расчёта crc всё становится на свои места
Привожу сдесь немного подправленый код, может пригодится
Не знаю почему CRC получаемый твоим модулем у меня не совпадал с CRC получаемый например WinHex-ом...
Но если немного подправить процедуру генерации таблицы для расчёта crc всё становится на свои места
Привожу сдесь немного подправленый код, может пригодится
Code: Select all
dword table[256];
dword CRC32(byte *buff,dword len)
{
dword crc = 0xFFFFFFFF;
while (len--) crc = (crc>>8) ^ table[(byte)crc ^ *buff++];
return crc ^ 0xFFFFFFFF;
}
void InitCRC32()
{
dword i,j,mask;
for ( i=0;i<256 ;i++){
mask = 0xFFFFFF00 + i&0xFF;
for ( j=0; j<8; j++ ){
if ( mask & 1 ){
mask >>= 1;
mask ^= poly;
}
else mask >>= 1;
}
table[i&0xFF] = mask;
}
}
rabid rabbit
Можно пояснить, что здесь происходит? MSDN ни фига не объясняет. crtFnList[1] - этот массив указателей на функции создает компилятор или его надо объявлять самому?
И если писать на простом С без классов и объектов эта часть кода нужна?
Code: Select all
// вызов статических инициализаторов
// заодно инициализация генератора случайных чисел
#pragma section(".CRT")
__declspec(allocate(".CRT")) void (__cdecl *crtFnList[1])();
И если писать на простом С без классов и объектов эта часть кода нужна?
Поясняю - как я понял из просмотра ассемблерных файлов, создаваемых компилятором, в секцию .CRT заносится массив адресов функций, производящих некоторую инициализацию при запуске программы. Так что объявлять надо только переменную, через которую можно получить доступ к этому массиву. Кстати, этот кусок кода из старого исходника - в новом слегка изменён способ доступа к секции .CRT (за образец взяты исходники мелкосовтовского crt). На счёт чистого Си не знаю, надо пробовать, т.к. в исходниках crt есть вроде вызов инициализаторов и для Си.
Имхо лучшая игра для Колибри
Ты еще не пробовал Jump'n'bump! Кооперативный мультиплеер против ботов! viewtopic.php?f=41&t=2056
Я настроила автосборку из исходников в r5107, r5108.
Сделаем мир лучше!
Who is online
Users browsing this forum: No registered users and 6 guests