windows C++ 获得一个进程的线程数目
2012-08-23 00:14
281 查看
主要是想实现一个函数,判断本进程是否是多线程。根据情况 显示不同的内容。
现在还不知道 待补充。。。
mark。
研究了一下 去看雪论坛 找了下资料 有一个示例
http://bbs.pediy.com/showthread.php?t=98078
然后 我琢磨了半天 终于写了一个简单的示例
http://bbs.pediy.com/showthread.php?p=1098221#post1098221
http://baike.baidu.com/view/589425.htm 这里的也可以。
今天 还遇到的一个问题是 string.data() 出来,使用atoi()获得的int整数,范围 太小了。需要使用atoll 之类的函数,但是没有。
在 shlwapi.h 库中 有一个可以使用StrToInt64A
定义为:
第二个参数 填0 即可。1 为十六进制。第一个 是目标 C字符串地址。第三个 参数 是目标 long long的地址。返回值 当然是true false判断是否成功了。
现在还不知道 待补充。。。
mark。
研究了一下 去看雪论坛 找了下资料 有一个示例
http://bbs.pediy.com/showthread.php?t=98078
然后 我琢磨了半天 终于写了一个简单的示例
http://bbs.pediy.com/showthread.php?p=1098221#post1098221
http://baike.baidu.com/view/589425.htm 这里的也可以。
#include <TlHelp32.h> void TestProcessGetThreadNumber() { int i = 0; char Buff[9]; PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if (hProcessSnap == INVALID_HANDLE_VALUE) { printf("CreateToolhelp32Snapshot 调用失败.\n"); return ; } BOOL bMore = ::Process32First(hProcessSnap,&pe32); HANDLE hProcess; printf("%-30s %-20s %-20s %-15s\n","szExeFile","th32ProcessID","th32ParentProcessID","cntThreads"); while(bMore) { printf("%-30s ",pe32.szExeFile); printf("%-20d ",pe32.th32ProcessID); printf("%-20d",pe32.th32ParentProcessID); //显示进程的线程数 printf("%-15d\n",pe32.cntThreads); bMore = Process32Next(hProcessSnap,&pe32); i++; //pe32.th32ModuleID } printf("进程数:%d\n",i); system("pause"); exit(0); }
今天 还遇到的一个问题是 string.data() 出来,使用atoi()获得的int整数,范围 太小了。需要使用atoll 之类的函数,但是没有。
在 shlwapi.h 库中 有一个可以使用StrToInt64A
定义为:
LWSTDAPI_(BOOL) StrToInt64ExA(__in LPCSTR pszString, __in STIF_FLAGS dwFlags, __out LONGLONG * pllRet);
第二个参数 填0 即可。1 为十六进制。第一个 是目标 C字符串地址。第三个 参数 是目标 long long的地址。返回值 当然是true false判断是否成功了。
相关文章推荐
- 一个进程最多可以创建线程的数目
- 一个Windows C++的线程类实现
- c++的进程和线程【windows】
- C++ windows多线程 线程描述了进程内代码的执行路径。进程中同时可以有多个线程在执行,为了使他们能够同时运行,操作系统为每个线程轮流分配CPU时间片,为了充分地利用CPU提高软件产品的性能,一
- [c/c++] 一个进程有多个线程,用什么方法让主线程不退出更好,要求占用资源最少,效率最高
- 一个Windows C++的线程类实现
- windows C++进程间和线程间通信
- Cpp-一个Windows C++的线程类实现
- 线程与进程(c++ windows)
- [c/c++] 一个进程有多个线程,用什么方法让主线程不退出更好,占用资源最少,效率最高?
- windows 一个进程(Process)最多可以生成多少个线程(Thread)
- c++的进程和线程【windows】
- C++实现线程同步的几种方式 线程同步是指同一进程中的多个线程互相协调工作从而达到一致性。之所以需要线程同步,是因为多个线程同时对一个数据对象进行修改操作时,可能会对数据造成破坏,下面是多
- 一个Windows C++的线程类实现
- 一个进程最多可以创建线程的数目
- Linux多线程编程的时候如何查看一个进程中的某个线程是否存活
- C++windows内核编程笔记day13 进程、线程与信号量
- C++多线程框架(一)--------- new一下就启动一个线程
- 进程与线程的一个简单解释(转)
- 进程与线程的一个简单解释