TCHAR(wchar_t)和int类型相加减的结果类型

首先,TCHAR类型就是wchar_t类型。
TCHAR加减int类型的结果是TCHAR类型。

“# include <windows.h> # include <tlhelp32.h> # include <iostream> // 当在用户模式机内核模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的帮助方法 DWORD GetKernelModePercentage(const FILETIME& ftKernel, const FILETIME& ftUser) { // 将FILETIME结构转化为64位整数 ULONGLONG qwKernel = (((ULONGLONG)ftKernel.dwHighDateTime) << 32) + ftKernel.dwLowDateTime; ULONGLONG qwUser = (((ULONGLONG)ftUser.dwHighDateTime) << 32) + ftUser.dwLowDateTime; // 将消耗时间相加,然后计算消耗在内核模式下的时间百分比 ULONGLONG qwTotal = qwKernel + qwUser; DWORD dwPct = (DWORD)(((ULONGLONG)100 * qwKernel) / qwTotal); return(dwPct); } // 以下是将当前运行过程名消耗在内核模式下的时间百分数都显示出来的应用程序 void main(int argc, char* argv[]) { if (argc < 2) { std::cout << "请给出你要查询的程序名" << std::endl; exit(0); } // 对当前系统中运行的过程拍取“快照” HANDLE hSnapshot = ::CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, // 提取当前过程 0); // 如果是当前过程,就将其忽略 // 初始化过程入口 PROCESSENTRY32 pe; ::ZeroMemory(&pe, sizeof(pe)); pe.dwSize = sizeof(pe); BOOL bMore = ::Process32First(hSnapshot, &pe); BOOL found = FALSE; while (bMore) { // 打开用于读取的过程 if (!strcmp(pe.szExeFile, argv[1])) { found = TRUE; HANDLE hProcess = ::OpenProcess( PROCESS_QUERY_INFORMATION, // 指明要得到信息 FALSE, // 不必继承这一句柄 pe.th32ProcessID); // 要打开的进程 if (hProcess != NULL) { // 找出进程的时间 FILETIME ftCreation, ftKernelMode, ftUserMode, ftExit; ::GetProcessTimes( hProcess, // 所感兴趣的进程 &ftCreation, // 进程的启动时间 &ftExit, // 结束时间 (如果有的话) &ftKernelMode, // 在内核模式下消耗的时间 &ftUserMode); // 在用户模式下消耗的时间 // 计算内核模式消耗的时间百分比 DWORD dwPctKernel = ::GetKernelModePercentage( ftKernelMode, // 在内核模式上消耗的时间 ftUserMode); // 在用户模式下消耗的时间 // 向用户显示进程的某些信息 std::cout << "请给出你要查询的程序名" << std::endl; std::cout << "process ID: " << pe.th32ProcessID << ",EXE file:" << pe.szExeFile << ",%d in Kernel mode: " << dwPctKernel <<std:: endl; // 消除句柄 ::CloseHandle(hProcess); } } // 转向下一个进程 bMore = ::Process32Next(hSnapshot, &pe); } if (found == FALSE) { std::cout << "当前系统没有这个可执行程序正在运行" <<std:: endl; exit(0); } }”帮我修改并优化代码
最新发布
03-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值