抛弃GdCpp*.dll/pdb历史重新建库。libhv和Sqlite的dll保留

This commit is contained in:
Zhang Jianjun
2026-02-02 16:09:02 +08:00
parent f148ca49e3
commit 4a2a284ac0
292 changed files with 350450 additions and 0 deletions

76
source/CTic.cpp Normal file
View File

@@ -0,0 +1,76 @@
#include "pch.h"
#include "CTic.h"
// 高精度定时器的频率单位Hz调用Init()确定
// 目前测到频率在2.5M - 10M
int64_t CTic::Freq = 0;
// 高精度定时器的频率单位kHz调用Init()确定
int64_t CTic::Freq_1k = 0;
int64_t CTic::Freq_10k = 0;
int64_t CTic::Freq_100k = 0;
int64_t CTic::Freq_M10 =0; //0.1Hz
int64_t CTic::Freq_M100 =0; //0.01Hz
// 记录启动软件时的时间戳
int64_t CTic::AppStartTick = 0;
bool CTic::Init()
{
if (Freq == 0) { // 确保只调用一次避免多次调用后AppStartTick发生变化
QueryPerformanceFrequency(reinterpret_cast<LARGE_INTEGER*>(&Freq));
QueryCnt(AppStartTick);
}
Freq_1k = Freq / 1000;
Freq_10k = Freq / 10000;
Freq_100k = Freq / 100000;
Freq_M10 = Freq * 10;
Freq_M100 = Freq * 100;
bool ok = (Freq_100k * 100000 == Freq);
_ASSERT_EXPR(ok, "Freq_100k * 100000 == Freq"); // 必须满足频率是100k的倍数
return ok;
}
int64_t CAvgDiffTick::add(int64_t newvalue)
{
if (!Buf) return 0;
if (Cnt == 0) {
index = 0;
_Avg = 0;
}
else if (Cnt < N) {
_Avg = int((newvalue - Buf[0]) / Cnt);
}
else {
if (index >= N) index = 0;
_Avg = int(((newvalue - Buf[index]) + N / 2) / N);
}
Buf[index] = newvalue;
index++;
Cnt++;
return _Avg;
}
// 测试代码
void CAvgDiffTick::Test1(int avgnum)
{
CAvgDiffTick Avg(avgnum);
int64_t x = 0;
for (int i = 0; i < 100; i++)
{
x += 1000 + rand() % 10 - 5;
std::cout << Avg.add(x) << std::endl;
}
}
void CAvgDiffTick::Test2(int avgnum)
{
CAvgDiffTick Avg(avgnum);
int64_t x = 0;
for (int i = 0; i < 100; i++)
{
std::cout << Avg.add(Avg.appRun_100us()) << std::endl;
Sleep(100);
}
}