<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>零度x&#039;s blog &#187; VC学习</title>
	<atom:link href="http://www.lingdux.com/category/vc-learning/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lingdux.com</link>
	<description>Take it slowly,it&#039;s OK,it&#039;s OK.</description>
	<lastBuildDate>Tue, 06 Jul 2010 03:50:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>获取其它进程的启动参数</title>
		<link>http://www.lingdux.com/2010/175.html</link>
		<comments>http://www.lingdux.com/2010/175.html#comments</comments>
		<pubDate>Sat, 08 May 2010 12:20:06 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[启动参数]]></category>
		<category><![CDATA[进程]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=175</guid>
		<description><![CDATA[void GetWindowCommandLine(char *buffer,DWORD pid)

{

 CHAR *P=::GetCommandLine();

<span class="readmore"><a href="http://www.lingdux.com/2010/175.html" title="获取其它进程的启动参数">阅读全文——共438字</a></span>]]></description>
			<content:encoded><![CDATA[<p>void GetWindowCommandLine(char *buffer,DWORD pid)<br />
{<br />
 CHAR *P=::GetCommandLine();<br />
 char *pEvn;<br />
 char *pAddr;<br />
 char *pFunction;<br />
 pFunction=(char *)::GetCommandLine;<br />
 memcpy(&amp;pAddr,pFunction+1,sizeof(char *));<br />
 DWORD dwRet;<br />
 HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS, false,pid);<br />
 ::ReadProcessMemory(hProcess, pAddr,&amp;pEvn, sizeof(DWORD),&amp;dwRet);<br />
 char Buff[512];<br />
 ::ReadProcessMemory(hProcess, pEvn, Buff, 512, &amp;dwRet);<br />
 strcpy(buffer,Buff);<br />
 CloseHandle(hProcess);<br />
}</p>
<p><span id="more-175"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2010/175.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>求两个数最大公约数的算法</title>
		<link>http://www.lingdux.com/2010/156.html</link>
		<comments>http://www.lingdux.com/2010/156.html#comments</comments>
		<pubDate>Mon, 15 Mar 2010 04:19:05 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[两个数]]></category>
		<category><![CDATA[公约数]]></category>
		<category><![CDATA[最大]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=156</guid>
		<description><![CDATA[上课老师讲的，记录一下。

int func(int m,int n)

{

<span class="readmore"><a href="http://www.lingdux.com/2010/156.html" title="求两个数最大公约数的算法">阅读全文——共74字</a></span>]]></description>
			<content:encoded><![CDATA[<p>上课老师讲的，记录一下。<br />
int func(int m,int n)<br />
{<br />
int r=1;<br />
while(r!=0)<br />
{<br />
r=m%n;<br />
m=n;<br />
n=r;<br />
}<br />
return m;<br />
}<br />
<span id="more-156"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2010/156.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vc实现域名转换成IP</title>
		<link>http://www.lingdux.com/2010/146.html</link>
		<comments>http://www.lingdux.com/2010/146.html#comments</comments>
		<pubDate>Sat, 20 Feb 2010 12:41:11 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[VC]]></category>
		<category><![CDATA[域名]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=146</guid>
		<description><![CDATA[ WSADATA wsa;

 WSAStartup(MAKEWORD(2,2),&#38;wsa);

 hostent *pht;

<span class="readmore"><a href="http://www.lingdux.com/2010/146.html" title="vc实现域名转换成IP">阅读全文——共210字</a></span>]]></description>
			<content:encoded><![CDATA[<p> WSADATA wsa;<br />
 WSAStartup(MAKEWORD(2,2),&amp;wsa);<br />
 hostent *pht;<br />
 pht=gethostbyname(“<a href="http://www.lingdux.com" target="_blank">www.lingdux.com</a>”);<br />
 LPSTR pstr=pht-&gt;h_addr_list[0];<br />
 struct in_addr inaddr;<br />
 memmove(&amp;inaddr,pstr,4);<br />
 MessageBoxA(0,inet_ntoa(inaddr),0,0);</p>
<p><span id="more-146"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2010/146.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vc实现FTP上传文件</title>
		<link>http://www.lingdux.com/2010/143.html</link>
		<comments>http://www.lingdux.com/2010/143.html#comments</comments>
		<pubDate>Fri, 12 Feb 2010 17:58:15 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[VC]]></category>
		<category><![CDATA[上传]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=143</guid>
		<description><![CDATA[CFtpConnection *pconnection;

 CInternetSession *session=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);

 try

<span class="readmore"><a href="http://www.lingdux.com/2010/143.html" title="vc实现FTP上传文件">阅读全文——共461字</a></span>]]></description>
			<content:encoded><![CDATA[<p>CFtpConnection *pconnection;<br />
 CInternetSession *session=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);<br />
 try<br />
 {<br />
  pconnection=session-&gt;GetFtpConnection(FtpAddress,UserName,Password);<br />
 }<br />
 catch(CInternetException *pEx)<br />
 {<br />
  WCHAR errror[1024]={0};<br />
  if(pEx-&gt;GetErrorMessage(ERROR,1024))<br />
   MessageBox(ERROR);<br />
  else<br />
   MessageBox(L&#8221;出现异常&#8221;);<br />
 }<br />
 if(pconnection-&gt;PutFile(L&#8221;C:\\ip.txt&#8221;,path))<br />
  MessageBox(L&#8221;上传成功！&#8221;);<br />
 else<br />
  MessageBox(L&#8221;上传失败！&#8221;);<br />
 pconnection-&gt;Close();</p>
<p><span id="more-143"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2010/143.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>记一次关于GetMessage()的错误</title>
		<link>http://www.lingdux.com/2010/141.html</link>
		<comments>http://www.lingdux.com/2010/141.html#comments</comments>
		<pubDate>Sat, 23 Jan 2010 17:31:35 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[GetMessage()]]></category>
		<category><![CDATA[PostQuitMessage()]]></category>
		<category><![CDATA[错误]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=141</guid>
		<description><![CDATA[今天抛弃MFC写了一个窗口，用while(GetMessage())进入消息循环

在填写GetMessage()的参数的时候，按照VS2008显示的参数进行填写。GetMessage(&#38;msg,hwnd,0,0)

写好回调后编译，运行，结果点退出之后窗体消失，程序并不退出，打开任务管理器发现CPU飙满。

<span class="readmore"><a href="http://www.lingdux.com/2010/141.html" title="记一次关于GetMessage()的错误">阅读全文——共371字</a></span>]]></description>
			<content:encoded><![CDATA[<p>今天抛弃MFC写了一个窗口，用while(GetMessage())进入消息循环</p>
<p>在填写GetMessage()的参数的时候，按照VS2008显示的参数进行填写。GetMessage(&amp;msg,hwnd,0,0)</p>
<p>写好回调后编译，运行，结果点退出之后窗体消失，程序并不退出，打开任务管理器发现CPU飙满。</p>
<p>baidu到一篇和我遇到问题一样，没有解决。</p>
<p>OD载入调试，在GetMessage下断，发现返回-1，加了一句GetLastError()返回0&#215;578,窗体指针无效，豁然开朗。</p>
<p>原来是GetMessage()的第二个参数应该添NULL表示接受所有窗口的消息，我添的是hwnd，DestroyWindow后句柄就无效了，因此GetMessage()返回-1并且进入死循环了。改成NULL就可以正常接收到PostQuitMessage()的消息了！</p>
<p><span id="more-141"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2010/141.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VC内嵌汇编</title>
		<link>http://www.lingdux.com/2009/135.html</link>
		<comments>http://www.lingdux.com/2009/135.html#comments</comments>
		<pubDate>Fri, 27 Nov 2009 02:44:56 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[VC]]></category>
		<category><![CDATA[内嵌]]></category>
		<category><![CDATA[汇编]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=135</guid>
		<description><![CDATA[#include &#8220;windows.h&#8221;

#include &#8220;tchar.h&#8221;

WCHAR a[]=L&#8221;123&#8243;;

<span class="readmore"><a href="http://www.lingdux.com/2009/135.html" title="VC内嵌汇编">阅读全文——共356字</a></span>]]></description>
			<content:encoded><![CDATA[<p>#include &#8220;windows.h&#8221;<br />
#include &#8220;tchar.h&#8221;<br />
WCHAR a[]=L&#8221;123&#8243;;<br />
int WINAPI MyFonc(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)<br />
{<br />
 WCHAR b[]=L&#8221;456&#8243;;<br />
 HMODULE hmodule=LoadLibrary(L&#8221;user32.dll&#8221;);<br />
 FARPROC addr=GetProcAddress(hmodule,&#8221;MessageBoxW&#8221;);<br />
 __asm<br />
 {<br />
  push 0<br />
  mov eax,offset a//全局用offset<br />
  push eax<br />
  lea eax,b//局部用lea<br />
  push eax<br />
  push 0<br />
  call addr<br />
 }<br />
 return 0;<br />
}</p>
<p><span id="more-135"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2009/135.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>不用MFC的类和函数实现资源释放</title>
		<link>http://www.lingdux.com/2009/98.html</link>
		<comments>http://www.lingdux.com/2009/98.html#comments</comments>
		<pubDate>Wed, 22 Jul 2009 10:17:38 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[资源]]></category>
		<category><![CDATA[释放]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=98</guid>
		<description><![CDATA[昨天写win32程序时候用到资源释放，网上一查基本都是用MFC的类和函数实现的，下面的是不用MFC的类和函数实现资源释放的代码：

HINSTANCE h=GetModuleHandle(NULL);

HRSRC hr = FindResource(h, MAKEINTRESOURCE(IDR_SYS1), &#8220;SYS&#8221;);

<span class="readmore"><a href="http://www.lingdux.com/2009/98.html" title="不用MFC的类和函数实现资源释放">阅读全文——共421字</a></span>]]></description>
			<content:encoded><![CDATA[<p>昨天写win32程序时候用到资源释放，网上一查基本都是用MFC的类和函数实现的，下面的是不用MFC的类和函数实现资源释放的代码：</p>
<p>HINSTANCE h=GetModuleHandle(NULL);<br />
HRSRC hr = FindResource(h, MAKEINTRESOURCE(IDR_SYS1), &#8220;SYS&#8221;);<br />
HGLOBAL hg = LoadResource(h, hr);<br />
LPVOID pv = (PSZ)LockResource(hg);<br />
HANDLE cr;<br />
cr=CreateFile(&#8220;C:\\1.sys&#8221;,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0);<br />
int length = SizeofResource(h,hr);<br />
DWORD dw;<br />
WriteFile(cr,hg,length,&amp;dw,NULL);<br />
CloseHandle(cr);</p>
<p><span id="more-98"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2009/98.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简单实现进程互斥</title>
		<link>http://www.lingdux.com/2009/93.html</link>
		<comments>http://www.lingdux.com/2009/93.html#comments</comments>
		<pubDate>Sun, 12 Jul 2009 15:49:50 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[互斥]]></category>
		<category><![CDATA[实现]]></category>
		<category><![CDATA[进程]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=93</guid>
		<description><![CDATA[ HANDLE huchi=CreateMutex(NULL,false,&#8221;server&#8221;);

 if(GetLastError()==ERROR_ALREADY_EXISTS)

 {

<span class="readmore"><a href="http://www.lingdux.com/2009/93.html" title="简单实现进程互斥">阅读全文——共115字</a></span>]]></description>
			<content:encoded><![CDATA[<p> HANDLE huchi=CreateMutex(NULL,false,&#8221;server&#8221;);<br />
 if(GetLastError()==ERROR_ALREADY_EXISTS)<br />
 {<br />
  huchi=NULL;<br />
  exit(0);;<br />
 }</p>
<p><span id="more-93"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2009/93.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>优化VC程序体积的一段代码</title>
		<link>http://www.lingdux.com/2009/86.html</link>
		<comments>http://www.lingdux.com/2009/86.html#comments</comments>
		<pubDate>Sat, 11 Jul 2009 15:15:23 +0000</pubDate>
		<dc:creator>零度x</dc:creator>
				<category><![CDATA[VC学习]]></category>
		<category><![CDATA[VC]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[体积]]></category>

		<guid isPermaLink="false">http://www.lingdux.com/?p=86</guid>
		<description><![CDATA[#ifdef NDEBUG

#pragma optimize(&#8220;gsy&#8221;,on)

//RELEASE方式编译

<span class="readmore"><a href="http://www.lingdux.com/2009/86.html" title="优化VC程序体积的一段代码">阅读全文——共563字</a></span>]]></description>
			<content:encoded><![CDATA[<p>#ifdef NDEBUG<br />
#pragma optimize(&#8220;gsy&#8221;,on)<br />
//RELEASE方式编译<br />
#pragma comment(linker,&#8221;/RELEASE&#8221;)<br />
#ifdef _MERGE_RDATA_<br />
//合并区段<br />
#pragma comment(linker,&#8221;/merge:.rdata=.text&#8221;)<br />
#endif<br />
#pragma comment(linker,&#8221;/merge:.data=.text&#8221;)<br />
#pragma comment(linker,&#8221;/merge:.reloc=.text&#8221;)<br />
#if _MSC_VER&gt;=1000<br />
#endif<br />
#endif</p>
<p><span id="more-86"></span><br />
//入口点函数<br />
#pragma comment(linker,&#8221;/ENTRY:WinMain&#8221;)<br />
#pragma comment(linker,&#8221;/MERGE:.rdata=.text&#8221;)<br />
#pragma comment(linker,&#8221;/MERGE:.data=.text&#8221;)<br />
#pragma comment(lib,&#8221;msvcrt.lib&#8221;)<br />
#if(_MSC_VER&lt;1300)<br />
#pragma comment(linker,&#8221;/IGNORE:4078&#8243;)<br />
#pragma comment(linker,&#8221;/OPT:NOWIN98&#8243;)<br />
#endif<br />
#define WIN32_LEAN_AND_MEAN</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lingdux.com/2009/86.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
