Проблема с 64 битным он дает неправильное значение
typedef struct _tagStrRec { short nSym; // string numeric ID short nSec; // area numeric ID short nLen; // string len long lSeek; // seek position within the file } PSTRTBL, FAR* LPPSTRTBL;
PSTRTBL strTbl; strTbl.nSym = 20; strTbl.nSec = 50; LPPSTRTBL pStrTbl = &strTbl; pStrTbl->lSeek = 0; pStrTbl->nLen = 20; pStrTbl->nSec = 10; pStrTbl->nSym = 20; PSTRTBL strTbl1; strTbl.nSym = 100; strTbl.nSec = 800; LPPSTRTBL pStrTbl1 = &strTbl1; pStrTbl1->lSeek = 30; pStrTbl1->nLen = 50; pStrTbl1->nSec = 60; pStrTbl1->nSym = 80; long lInd = HandleToLong(pStrTbl) - HandleToLong(pStrTbl1);
Что я уже пробовал:
Я конвертирую свое приложение из 32-битного в 64-битное в 32-битном значении lInd = 32, но в 64-битном оно приближается к -80.
Линд долго = (долго)(pStrTbl) - (длинные)(pStrTbl1); //32 бита
long lInd = HandleToLong(pStrTbl) - HandleToLong(pStrTbl1); //64bit
Не могли бы вы сообщить мне об этом вопросе?
Member 13798855
Линд для 32 - битного и 64-битного отличается , я не уверен, почему ?