我试图找到一种方法来为加密方法找到某种纳秒级时序.我在stackoverflow上找到了这个代码,它似乎没有在VS2010中编译,但我无法弄清楚为什么.错误是'time = GetCpuClocks()'并说"错误C3861:'GetCpuClocks':标识符未找到",我不明白为什么?我在struct声明中也遇到了'int32'类型的问题.
(我假设'时间'声称'长'可以吗?或者它应该是__int64?
提前致谢
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |