Может у кого-нибудь было что-то подобное...
Имеется Visual C++, 7.0
В файле const.h пишу так:
const unsigned __int64 CONST_A = 0x0123456789ABCDEF;
потом в main.cpp
#include "const.h"
теперь заускаю дебагер и прямо на первой строчке
смотрю, что
CONST_A=0x0000000089abcdef
то есть заполняется ровно 4 байта из 8...
при чем все сломалось совсем недавно и пять минут назад все значения
инициализировались правильно.
Пересобираю, опять такие же ляпы.
чего посоветуете?
Здравствуйте, CMaker, Вы писали:
CM>Может у кого-нибудь было что-то подобное...
CM>Имеется Visual C++, 7.0
CM>В файле const.h пишу так:
CM> const unsigned __int64 CONST_A = 0x0123456789ABCDEF;
CM>потом в main.cpp
CM> #include "const.h"
CM>теперь заускаю дебагер и прямо на первой строчке
CM>смотрю, что
CM> CONST_A=0x0000000089abcdef
CM>то есть заполняется ровно 4 байта из 8...
CM>при чем все сломалось совсем недавно и пять минут назад все значения
CM>инициализировались правильно.
CM>Пересобираю, опять такие же ляпы.
CM>чего посоветуете?
Попробуйте вернуть все изменения назад, и вносить их "малыми порциями"
Здравствуйте, CMaker, Вы писали:
CM>В файле const.h пишу так:
CM> const unsigned __int64 CONST_A = 0x0123456789ABCDEF;
попробуй
const unsigned __int64 CONST_A = 0x0123456789ABCDEFLL;
Пробовал и тип явно указывать: LL, ui64.
Не помогло.
Зато я посмотрел asm, выяснилось, что работает все при этом правильно.
А вот debugger в VS никак не хочет показывать значение правильно.
При этом если написать вот так:
const unsigned __int64 CONST_A = 0x0123456789ABCDEF;
а потом:
__int64 test = CONST_A;
то в дебагере test примет правильное значение, а CONST_A так и будет урезанным на половину.
Думаю теперь, как бы мой дебагер вернуть к нормальной работе....