Re[2]: [so] Robocheck pt Visual Studio .NET (2003)

George Adrian Drumea so@cursuri.cs.pub.ro
Thu, 18 Nov 2004 11:09:22 +0200


>>   Si inca o chestie.. 'robocheck.h' contine in multe
>>locuri 'long long', iar la mine trebuie inlocuite cu
>>'__int64'. Este din cauza versiunii de Visual Studio?
>>(am 7.0 .. la versiunile de dupa s-a "acceptat" si
>>'long long'- ul ?)
>>

AD> Incearca sa folosesti tipuri de date Win32 veritabile. Ma refer aici ca ai
AD> fi putut sa folosesti LONGLONG in loc de long long. Sau chiar ULONGLONG,
AD> daca valorile erau pozitive. Nu are nici o legatura cu Visual Studio
AD> efectiv. Este legat de Platform SDK si de compiler.

<winnt.h>:
445: typedef __int64 LONGLONG;
446: typedef unsigned __int64 ULONGLONG;

E acelasi lucru. De asemenea, in MSDN se specifica clar
dimensiunile tipurilor. Singurele tipuri pentru care dimensiunea este
variabila sunt xxx_PTR (cum ar fi LONG_PTR, DWORD_PTR, in general folosite
in aritmetica cu pointeri), care au 32/64 de biti in functie de
versiunea de Windows. Legatura cu Visual Studio (de fapt cu versiunea
de compilator folosita) este ca 'long long' nu este recunoscut de
versiunea anterioara, insa 2003 defineste acest tip ca fiind de 64 de
biti. In robocheck l-am lasat intentionat asa ca sa nu mai am
inca un define cross-platform pt un intreg de 64 de biti.

-- 
Best regards,
 George                            mailto:georgedrumea@rdslink.ro