﻿<?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++博客-C++ Pointer-最新评论</title><link>http://www.cppblog.com/wangjt/CommentsRSS.aspx</link><description /><language>zh-cn</language><pubDate>Mon, 31 Jan 2011 03:11:07 GMT</pubDate><lastBuildDate>Mon, 31 Jan 2011 03:11:07 GMT</lastBuildDate><generator>cnblogs</generator><item><title>re: 通过Thunk将类的非静态成员函数设置为WindowProc</title><link>http://www.cppblog.com/wangjt/archive/2009/05/26/41939.html#85802</link><dc:creator>arden</dc:creator><author>arden</author><pubDate>Tue, 26 May 2009 08:07:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2009/05/26/41939.html#85802</guid><description><![CDATA[要是用模板建立一个窗口，它不会有WM_NCCREATE这个消息吧 . 那怎么办？<img src ="http://www.cppblog.com/wangjt/aggbug/85802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">arden</a> 2009-05-26 16:07 <a href="http://www.cppblog.com/wangjt/archive/2009/05/26/41939.html#85802#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 通过Thunk将类的非静态成员函数设置为WindowProc</title><link>http://www.cppblog.com/wangjt/archive/2008/06/16/41939.html#53591</link><dc:creator>XuQ</dc:creator><author>XuQ</author><pubDate>Mon, 16 Jun 2008 12:46:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2008/06/16/41939.html#53591</guid><description><![CDATA[@汪江涛<br>更正一下，应该是基于.net2.0的应用程序加载C++编写的dll（vs2005编译），然后再在dll中加载vs2003编译的com，如果com中使用atl窗体（会使用thunk技术），在运行时就会出现异常。如果改为vs2003（基于.net1.0）编译应用程序，就不会出现问题。<br>所以猜测跟.net2.0有关。<br>不知道楼主是否遇到过此类现象，因为种种原因，加载方式不能更改，请教是否有其他解决方案，如果要改thunk就只能动atl库的代码了。<img src ="http://www.cppblog.com/wangjt/aggbug/53591.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">XuQ</a> 2008-06-16 20:46 <a href="http://www.cppblog.com/wangjt/archive/2008/06/16/41939.html#53591#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 通过Thunk将类的非静态成员函数设置为WindowProc</title><link>http://www.cppblog.com/wangjt/archive/2008/02/02/41939.html#42387</link><dc:creator>汪江涛</dc:creator><author>汪江涛</author><pubDate>Sat, 02 Feb 2008 03:31:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2008/02/02/41939.html#42387</guid><description><![CDATA[应该不需要管理员权限，但依赖系统的DEP策略，所以可能调用会失败。“在VS2005中使用VS2003编译的thunk代码”不太明白什么意思？你是说在VS2005中使用VS2003编译的包含thunk代码的静态或动态链接库吗？这个我就不楚了，你不防把错误信息贴出来，说不定有人知道，不过有一点注意，VC++2005默认设置是最大限度的与C++标准兼容，而VC++2003与C++标准兼容程度似乎差很多，这可能导致VC++2003兼容的代码在VC++2005中无法编译。可以肯定跟.net2.0无关，在VS2005和VS2003中，C++分托管和非托管，非托管C++跟.net几乎毫不相干。<img src ="http://www.cppblog.com/wangjt/aggbug/42387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">汪江涛</a> 2008-02-02 11:31 <a href="http://www.cppblog.com/wangjt/archive/2008/02/02/41939.html#42387#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 通过Thunk将类的非静态成员函数设置为WindowProc</title><link>http://www.cppblog.com/wangjt/archive/2008/02/01/41939.html#42339</link><dc:creator>XuQ</dc:creator><author>XuQ</author><pubDate>Fri, 01 Feb 2008 06:04:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2008/02/01/41939.html#42339</guid><description><![CDATA[使用SetProcessDEPPolicy禁用DEP会不会需要程序有管理员级别的权限？<br>另外在VS2005中使用VS2003编译的thunk代码，就会出现问题，在VS2003中就没有问题，好像与.net2.0有关。<img src ="http://www.cppblog.com/wangjt/aggbug/42339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">XuQ</a> 2008-02-01 14:04 <a href="http://www.cppblog.com/wangjt/archive/2008/02/01/41939.html#42339#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Windows同步API （一）—— Mutex</title><link>http://www.cppblog.com/wangjt/archive/2008/02/01/42235.html#42335</link><dc:creator>汪江涛</dc:creator><author>汪江涛</author><pubDate>Fri, 01 Feb 2008 04:33:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2008/02/01/42235.html#42335</guid><description><![CDATA[@梦在天涯<br>是吗？正好切磋，欢迎指正<br>我有段时间没做C++程序了，最近打算把这些东西系统总结一下<img src ="http://www.cppblog.com/wangjt/aggbug/42335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">汪江涛</a> 2008-02-01 12:33 <a href="http://www.cppblog.com/wangjt/archive/2008/02/01/42235.html#42335#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Windows同步API （一）—— Mutex</title><link>http://www.cppblog.com/wangjt/archive/2008/02/01/42235.html#42333</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Fri, 01 Feb 2008 03:55:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2008/02/01/42235.html#42333</guid><description><![CDATA[以前我也看过这方面的，还总结了一下！<br><img src ="http://www.cppblog.com/wangjt/aggbug/42333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">梦在天涯</a> 2008-02-01 11:55 <a href="http://www.cppblog.com/wangjt/archive/2008/02/01/42235.html#42333#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 通过Thunk将类的非静态成员函数设置为WindowProc</title><link>http://www.cppblog.com/wangjt/archive/2008/01/31/41939.html#42291</link><dc:creator>汪江涛</dc:creator><author>汪江涛</author><pubDate>Thu, 31 Jan 2008 09:46:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2008/01/31/41939.html#42291</guid><description><![CDATA[回楼上：ATL 8.0 中用的内存函数如下： <br>PVOID __stdcall __AllocStdCallThunk(VOID); <br>VOID __stdcall __FreeStdCallThunk(PVOID); <br>具体实现不清楚，但应该已经处理了DEP的问题，不确定是不是用的VirtualAlloc和VirtualFree，但MS官方文档中关于DEP的内容提到了用VirtualAlloc和VirtualFree可以解决，其它方式我就不表楚了。<br><br>对于ATL 7.1 及以前版本中确实是有DEP问题的，应用程序可以通过SetProcessDEPPolicy来禁用当前进程的DEP，但似乎并不保证总是成功。<br><br>以下是MS的DEP相关资料<br><br><a target="_new" href="http://msdn2.microsoft.com/en-us/library/bb736299">http://msdn2.microsoft.com/en-us/library/bb736299.aspx</a><br><br><a target="_new" href="http://technet2.microsoft.com/WindowsServer/zh-CHS/Library/b0de1052-4101-44c3-a294-4da1bd1ef2272052.mspx?mfr=true">http://technet2.microsoft.com/WindowsServer/zh-CHS/Library/b0de1052-4101-44c3-a294-4da1bd1ef2272052.mspx?mfr=true</a><br><br><img src ="http://www.cppblog.com/wangjt/aggbug/42291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">汪江涛</a> 2008-01-31 17:46 <a href="http://www.cppblog.com/wangjt/archive/2008/01/31/41939.html#42291#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 通过Thunk将类的非静态成员函数设置为WindowProc[未登录]</title><link>http://www.cppblog.com/wangjt/archive/2008/01/31/41939.html#42286</link><dc:creator>hongsion</dc:creator><author>hongsion</author><pubDate>Thu, 31 Jan 2008 08:25:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2008/01/31/41939.html#42286</guid><description><![CDATA[你最后提到<br>“<br>最扣补充一句，因为新版Windows或最新的Server Packs都加入了数据执行保护功能，按上面的方法弄很可能出现异常，因为Thunk是数据结构，会被放在数据段中并被标记不不可执行。解决办法之一是使用VirtualAlloc方法动态为thunk分配内在，并使用PAGE_EXECUTE_READWRITE标志，记得最后使用VirtualFree释放该内在。<br>”<br><br>如果这么说，难道在新版的windows中，ATL和MFC写的代码都不能用了？<br>因为我发现ATL和MFC都用了这样的thunk代码。<br><br><img src ="http://www.cppblog.com/wangjt/aggbug/42286.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">hongsion</a> 2008-01-31 16:25 <a href="http://www.cppblog.com/wangjt/archive/2008/01/31/41939.html#42286#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: 通过Thunk将类的非静态成员函数设置为WindowProc</title><link>http://www.cppblog.com/wangjt/archive/2008/01/28/41939.html#42007</link><dc:creator>Fox</dc:creator><author>Fox</author><pubDate>Mon, 28 Jan 2008 01:51:00 GMT</pubDate><guid>http://www.cppblog.com/wangjt/archive/2008/01/28/41939.html#42007</guid><description><![CDATA[没试过这个方法，我一直用类静态func做的，有时间试试。。<img src ="http://www.cppblog.com/wangjt/aggbug/42007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjt/" target="_blank">Fox</a> 2008-01-28 09:51 <a href="http://www.cppblog.com/wangjt/archive/2008/01/28/41939.html#42007#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>