Для считывания многобайтовой величины, такой как DWORD (для 32-битного числа речь идет о Win32), вам необходимо знать порядковый номер . Лучше всего читать по одному байту за раз и преобразовывать из порядка следования байтов, используемого в файле.
FILE *in;
DWORD num = 0;
if((fin = fopen("filename.bin", "rb")) != NULL)
{
unsigned char b0, b1, b2, b3;
fread(&b3, sizeof b3, 1, in);
fread(&b2, sizeof b2, 1, in);
fread(&b1, sizeof b1, 1, in);
fread(&b0, sizeof b0, 1, in);
// Assuming file is big-endian.
// for little endian, swap the order to b0...b3
num = (((DWORD) b3) << 24) | (((DWORD) b2) << 16) | (((DWORD) b1) << 8) | b0;
fclose(in);
}