﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-CppWorld</title><link>http://www.cppblog.com/remon2000/</link><description>光阴弹指一挥间 老去之前你想做的 不要放弃 不要后悔</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:06:39 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:06:39 GMT</pubDate><ttl>60</ttl><item><title>简单的windowsTasklist</title><link>http://www.cppblog.com/remon2000/archive/2008/12/13/69315.html</link><dc:creator>张辉</dc:creator><author>张辉</author><pubDate>Sat, 13 Dec 2008 02:47:00 GMT</pubDate><guid>http://www.cppblog.com/remon2000/archive/2008/12/13/69315.html</guid><wfw:comment>http://www.cppblog.com/remon2000/comments/69315.html</wfw:comment><comments>http://www.cppblog.com/remon2000/archive/2008/12/13/69315.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/remon2000/comments/commentRss/69315.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/remon2000/services/trackbacks/69315.html</trackback:ping><description><![CDATA[<code>#include &lt;windows.h&gt;<br>#include &lt;stdio.h&gt;<br>#include "Tlhelp32.h"<br>int main()<br>{<br>BOOL r;<br>HANDLE h;<br>PROCESSENTRY32 pe;<br>//::ZeroMemory(&amp;pe,sizeof(PROCESSENTRY32));<br>pe.dwSize=sizeof(PROCESSENTRY32);<br>h = CreateToolhelp32Snapshot(2,0);<br>r = Process32First(h, &amp;pe);<br>while(r) {<br>&nbsp;&nbsp;printf("%5d\t%s\n", pe.th32ProcessID,pe.szExeFile);<br>&nbsp;&nbsp;r = Process32Next(h, &amp;pe);<br>}<br>system("pause");<br>return 0;<br>}<img id=paperPicArea1 style="DISPLAY: none; POSITION: relative" src="http://cnc.imgcache.qq.com/ac/b.gif"><br></code>
<hr>
<code>#include &lt;windows.h&gt;<br>#include &lt;stdio.h&gt;<br>typedef struct tagPROCESSENTRY32 { <br>DWORD dwSize; <br>DWORD cntUsage; <br>DWORD th32ProcessID; <br>DWORD th32DefaultHeapID; <br>DWORD th32ModuleID; <br>DWORD cntThreads; <br>DWORD th32ParentProcessID; <br>LONG pcPriClassBase; <br>DWORD dwFlags; <br>TCHAR szExeFile[MAX_PATH]; <br>DWORD th32MemoryBase;<br>DWORD th32AccessKey;<br>} PROCESSENTRY32, *PPROCESSENTRY32;<br>typedef int (__stdcall *CREATETOOLHELP32SNAPSHOT) (int dw, int pid);<br>CREATETOOLHELP32SNAPSHOT CreateToolhelp32Snapshot;<br>typedef int (__stdcall *PROCESS32FIRST) (int h, int lp);<br>PROCESS32FIRST Process32First;<br>typedef int (__stdcall *PROCESS32NEXT) (int h, int lp);<br>PROCESS32NEXT Process32Next;<br>PROCESSENTRY32 x;<br>int main()<br>{<br>PROCESSENTRY32 pe = {0};<br>int h, r;<br>//获取API地址：<br>HMODULE pk = GetModuleHandleA("kernel32.dll");<br>CreateToolhelp32Snapshot = (CREATETOOLHELP32SNAPSHOT)GetProcAddress(pk, "CreateToolhelp32Snapshot");<br>Process32First = (PROCESS32FIRST)GetProcAddress(pk, "Process32First");<br>Process32Next = (PROCESS32NEXT)GetProcAddress(pk, "Process32Next");<br>h = CreateToolhelp32Snapshot(2, 0);//创建进程快照<br>pe.dwSize = sizeof(PROCESSENTRY32);//<br>r = Process32First(h, (int)&amp;pe);//<br>while(r) {<br>printf("%5d\t%s\n", pe.th32ProcessID, pe.szExeFile);<br>r = Process32Next(h, (int)&amp;pe);<br>}<br>return 0;<br>}<br><br>上面是原来的复杂代码<br>用到的结构，函数原型都自己在代码里声明<br>用GetProcAddress访问API<br>对Kernerl32.dll这样的系统库 使用GetProcAddress和使用头文件包含应该是一样的 貌似Kernel32不需要考虑动态加载 卸载的问题</code> 
<img src ="http://www.cppblog.com/remon2000/aggbug/69315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/remon2000/" target="_blank">张辉</a> 2008-12-13 10:47 <a href="http://www.cppblog.com/remon2000/archive/2008/12/13/69315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过引用防止拷贝构造的一种方法</title><link>http://www.cppblog.com/remon2000/archive/2008/12/13/69314.html</link><dc:creator>张辉</dc:creator><author>张辉</author><pubDate>Sat, 13 Dec 2008 02:43:00 GMT</pubDate><guid>http://www.cppblog.com/remon2000/archive/2008/12/13/69314.html</guid><wfw:comment>http://www.cppblog.com/remon2000/comments/69314.html</wfw:comment><comments>http://www.cppblog.com/remon2000/archive/2008/12/13/69314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/remon2000/comments/commentRss/69314.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/remon2000/services/trackbacks/69314.html</trackback:ping><description><![CDATA[fun(person a)<br>{<br>}<br>person dd;<br>fun(dd);<br>fun(person&amp; a)<br>{}<br>person dd;<br>fun(dd);<img id=paperPicArea1 style="DISPLAY: none; POSITION: relative" src="http://cnc.imgcache.qq.com/ac/b.gif">
<img src ="http://www.cppblog.com/remon2000/aggbug/69314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/remon2000/" target="_blank">张辉</a> 2008-12-13 10:43 <a href="http://www.cppblog.com/remon2000/archive/2008/12/13/69314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>