J'essaie d'obtenir un moyen de trouver une sorte de synchronisation au niveau de la nanoseconde pour une méthode de cryptage. J'ai trouvé ce code sur stackoverflow et il ne semble pas compiler dans VS2010 mais je ne peux pas comprendre pourquoi. L'erreur est avec 'time = GetCpuClocks()' et dit "erreur C3861: 'GetCpuClocks': identifiant non trouvé", je ne comprends pas pourquoi? J'avais aussi un problème avec le type 'int32' dans la déclaration de la structure.C++ quelque chose ne va pas avec ce code?
(je suppose que déclarant 'temps' 'long' est ok? Ou devrait-il été __int64?
Merci à l'avance
int _tmain(int argc, _TCHAR* argv[])
{
__int64 time;
time = GetCpuClocks();
}
inline __int64 GetCpuClocks() {
// Counter
struct { int32 low, high; } counter;
// Use RDTSC instruction to get clocks count
__asm push EAX
__asm push EDX
__asm __emit 0fh
__asm __emit 031h
// RDTSC
__asm mov counter.low, EAX
__asm mov counter.high, EDX
__asm pop EDX
__asm pop EAX
// Return result
return *(__int64 *)(&counter);
}
Vous aurez probablement besoin de mettre _tmain * après * GetCpuClocks() ... – kem
Ok les gars i J'ai découvert que j'avais besoin de déclarer la méthode en premier! Ma seule question est de savoir pourquoi j'utilise int32 pour un si grand nombre. Certaines de mes valeurs sont -xxxxxxxxx cela signifie-t-il que je devrais utiliser des nombres de 64 bits partout? – Jason
'chronométrage niveau nanosecondes' Vous ne trouverez pas cela. Il y a beaucoup trop de variables. Cette fonction obtient le temps vraiment vite, mais ce n'est pas fait pour chronométrer les choses. – Falmarri