??xml version="1.0" encoding="utf-8" standalone="yes"?>婷婷久久精品国产,久久婷婷五月综合色高清,国产精品久久久久久久久免费http://m.shnenglu.com/shanoa/其实我更爱姐?..zh-cnMon, 12 May 2025 16:00:27 GMTMon, 12 May 2025 16:00:27 GMT60boost::asio|络传输错误码的一些实验结果(recv error_codeQ?/title><link>http://m.shnenglu.com/shanoa/archive/2011/05/06/145840.html</link><dc:creator>酿妹?/dc:creator><author>酿妹?/author><pubDate>Fri, 06 May 2011 10:06:00 GMT</pubDate><guid>http://m.shnenglu.com/shanoa/archive/2011/05/06/145840.html</guid><wfw:comment>http://m.shnenglu.com/shanoa/comments/145840.html</wfw:comment><comments>http://m.shnenglu.com/shanoa/archive/2011/05/06/145840.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://m.shnenglu.com/shanoa/comments/commentRss/145840.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/shanoa/services/trackbacks/145840.html</trackback:ping><description><![CDATA[错误码很重要Q可以由此判断网l连接到底发生了马事情Q从而驱动高层逻辑的行为。只有笼l的错误码判断的|络层是不够规范的,鄙h觉得有些错误码还是需要在|络层就区分开的,Ҏ记录一些当前实验的错误码以及发生原因?br /><br />以下是一部分在async_receive()的handler处捕获到的比较有用的错误?br /> <table style="width: 756px; border-collapse: collapse; height: 222px" border="1" cellpadding="3" cellspacing="0"> <tbody> <tr> <td style="width: 132px">错误码(十进Ӟ</td> <td style="width: 231px; height: 24px">枚D</td> <td>发现原因</td> </tr> <tr> <td>10009</td> <td>boost::asio::error::bad_descriptor</td> <td>在一个已l关闭了的套接字上执行async_receive()</td> </tr> <tr> <td>995</td> <td>boost::asio::error::operation_aborted</td> <td>正在async_receive()异步d{待Ӟ本端关闭套接?/td> </tr> <tr> <td>10054</td> <td>boost::asio::error::connection_reset</td> <td>正在async_receive()异步d{待Ӟq端的TCP协议层发送RESETl止链接Q暴力关闭套接字。常常发生于q端q程强制关闭Ӟ操作pȝ释放套接字资源?/td> </tr> <tr> <td>2</td> <td>boost::asio::error::eof</td> <td>正在async_receive()异步d{待Ӟq端关闭套接字,q里?0054发生的情况似乎一P但是实际上应该是有区别的Q具体神马区别,由回复中jack的说法,q个是远端正常关闭套接字?/td> </tr> </tbody> </table> 只是一些浅陋的试Q目前觉得有用的也就是这几个Q不正确的地方请送我鸡蛋?img src ="http://m.shnenglu.com/shanoa/aggbug/145840.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2011-05-06 18:06 <a href="http://m.shnenglu.com/shanoa/archive/2011/05/06/145840.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost的bjam~译指ohttp://m.shnenglu.com/shanoa/archive/2011/01/30/139605.html酿妹?/dc:creator>酿妹?/author>Sun, 30 Jan 2011 01:34:00 GMThttp://m.shnenglu.com/shanoa/archive/2011/01/30/139605.htmlhttp://m.shnenglu.com/shanoa/comments/139605.htmlhttp://m.shnenglu.com/shanoa/archive/2011/01/30/139605.html#Feedback0http://m.shnenglu.com/shanoa/comments/commentRss/139605.htmlhttp://m.shnenglu.com/shanoa/services/trackbacks/139605.html前面必须使用到的Q类g面的指o
F:\sdk\boost>bjam --link=static --threading=multi --runtime-link=shared debug release stage

后面需要选择~译器和要编译的?br>--toolset=msvc-9.0 --with-date_time --with-thread......


]]>
OGRE与MFC的文件系l冲H问?/title><link>http://m.shnenglu.com/shanoa/archive/2010/12/29/137693.html</link><dc:creator>酿妹?/dc:creator><author>酿妹?/author><pubDate>Wed, 29 Dec 2010 12:49:00 GMT</pubDate><guid>http://m.shnenglu.com/shanoa/archive/2010/12/29/137693.html</guid><wfw:comment>http://m.shnenglu.com/shanoa/comments/137693.html</wfw:comment><comments>http://m.shnenglu.com/shanoa/archive/2010/12/29/137693.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://m.shnenglu.com/shanoa/comments/commentRss/137693.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/shanoa/services/trackbacks/137693.html</trackback:ping><description><![CDATA[<p>q两个东西在一起问题真呀么多......前些日子才写的一个注意事的随笔Q这回又有问题需要记录,好吧Q开新文写?br>问题Q由于项目的复杂度,问题的表C原因其实相差十万八千里?br>原因QMFC在打开和保持文件后Q即打开CFileDialog对话框后Q,׃修改q程的当前目录,是SetCurrentDirectoy()Q导致OGRE里那些用相对路径做Location的资源目录下的文件全部无法读取(其实我觉得OGRE应该把这些相对目录在d文g的时候换成绝对目录)。具体就是openResource()中调用stat()出错Q文件系l中找不到指定文件?br>解决ҎQ在合适的地方调用SetCurrentDirectoy()把进E当前目录设|回q程工作目录?.....</p> <p>于是又是一下午+半个晚上的调试时?.....<br></p> <img src ="http://m.shnenglu.com/shanoa/aggbug/137693.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2010-12-29 20:49 <a href="http://m.shnenglu.com/shanoa/archive/2010/12/29/137693.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>备忘随笔pd2Q内存错?/title><link>http://m.shnenglu.com/shanoa/archive/2010/12/23/137336.html</link><dc:creator>酿妹?/dc:creator><author>酿妹?/author><pubDate>Thu, 23 Dec 2010 15:41:00 GMT</pubDate><guid>http://m.shnenglu.com/shanoa/archive/2010/12/23/137336.html</guid><wfw:comment>http://m.shnenglu.com/shanoa/comments/137336.html</wfw:comment><comments>http://m.shnenglu.com/shanoa/archive/2010/12/23/137336.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/shanoa/comments/commentRss/137336.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/shanoa/services/trackbacks/137336.html</trackback:ping><description><![CDATA[接上?strong>《备忘随W系?QMFC与OGRE联姻注意事项?/strong>之后Q再记录一下内存错误,l过无数ơ莫名其妙的内存问题之后Q发C些找不着北的内存Crash问题出现的原因都很荒谬,所以本主要例举一下近期出现的一些怪异内存问题和让人啼W皆非的原因所在?br><br><strong>问题1Q?/strong>~译器在~译那些讉K成员变量的代码时错了相对于this指针的偏Ud节数Q赋值给下面一个变量时Q却修改了上面一个变量的倹{?br>原因Q与我共事的某位大仙׃L使用l构体传递网l包Q所以在某头文g里用#pragma pack(1)包括住了整个头文Ӟ一不小心把#include "其他头文?那些行也l包括了q去Q其中不乏Windows.h  stl云云......<br>解决办法Q当焉个啥......?pragma pack(1)的位|往下去几行Q还是细心点?..费了整整一天调试?br><br><strong>问题2Q?/strong>从网l另一端机器发q来一个结构体Q分别接收一个结构体中的多个数据成员和一ơ性接收整个结构体取出的数据不同?br>原因Q这是个?的情形,两个相同的结构体分别在不同的头文件中Q且一个有#pragma pack(1)Q一个没有?br>解决办法Q如果要用结构体传递网l包Q还是共用头文g?.....<br><br>其实......很多内存问题很不好描qͼ我也不经常出现如上那Ll的问题Q所以下面我q是说一个最常见的内存问题(0x.....地址讉K冲突Q和原因吧:<br>“0x.....地址讉K冲突”q个Crash基本上每个h都遇刎ͼ而且l常遇到Q但是大部分都很Ҏ解决。判断问题的原因可以看这几点Q?br>原因1Q如?x....q个值很,一般就?大一些,而且是在讉K某对象中的数据成员时出错的,那么q基本都是因对象指针为空Q你用了I对象指针调用了代码?br>原因2Q如?x...值同样很,但是q在访问某对象中的数据成员时出错,而是调用某函数那一行时出错的,那么q个函数十有八九是个虚函敎ͼ如果我说中的话,那原因应该如前面的原?相同Q只是这回是d虚函数表时就崩了?br>原因3Q如?x...值类似是0xcdcdcdcd?xeeeccc或者与q相q的敎ͼ且同h在访问数据成员或调用虚函数的时候出的问题,那么q就是个野指针问题了,释放了就别再用啊?br>原因4Q内存越界,q个对程序造成的麻烦比Mȝ都要大,但是问题q不隐蔽Q记得ؓ每个cȝ数据成员q行必要的初始化?br>原因5Q用了memset或ZeroMemory清空一些对象或对象数组。特别是对象数组Q很Ҏ让h忽略q个问题。有些程序员会觉得某对象里都是可以这hI的数据成员Q所以便q样做了Q但是往往虚函数表指针会被忽略Q这个指针绝对不能一赯清空的?br>ȝQ不要让表达索引的整形在初始化后是个未知|不要让指针没有在初始化时被赋0|不要不检查指针的值就拿它讉K成员函数和成员数据;不要重复释放指针所指对象;不要使用释放后和未初始化的内存数据;可以的话使用指针Q释放指针所指地址后,为指针赋0|只有在完全是内部cd构成且没有多态的cd对象上用memset为对象赋倹{?br> <img src ="http://m.shnenglu.com/shanoa/aggbug/137336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2010-12-23 23:41 <a href="http://m.shnenglu.com/shanoa/archive/2010/12/23/137336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>备忘随笔pd1QMFC与OGRE联姻注意事项http://m.shnenglu.com/shanoa/archive/2010/12/23/137249.html酿妹?/dc:creator>酿妹?/author>Wed, 22 Dec 2010 17:39:00 GMThttp://m.shnenglu.com/shanoa/archive/2010/12/23/137249.htmlhttp://m.shnenglu.com/shanoa/comments/137249.htmlhttp://m.shnenglu.com/shanoa/archive/2010/12/23/137249.html#Feedback6http://m.shnenglu.com/shanoa/comments/commentRss/137249.htmlhttp://m.shnenglu.com/shanoa/services/trackbacks/137249.html
本文记录最q发现的一?MFC ?OGRE1.7.2版本 联姻的注意事:

问题1Q?/strong>创徏Ogre的CViewH口后,无法截获鼠标点击和移动信息,只能获取鼠标滚轮信息?br>原因及解x案:传递CViewH口句柄Ӟ请一定用externedWindowHandle的属性keyQ切C要用parentWindowHandleQ因为parentWindowHandle是让CView成ؓ渲染H口的父H口Q鼠标键盘消息都不会路由到CView上,而是在渲染窗口里被截P而externedWindowHandle是让CViewH口本n成ؓ渲染H口Q所以CView才能正常截获到输入消息?br>
问题2Q?/strong>当解决问?之后Q发C用externedWindowHandlel制出的H口很小Q而用parentWindowHandle时则正常
原因及解x案:注意l承CView::OnSize()函数响应WM_SIZE消息Q但请切讎ͼ千万别在OnSize中调用Ogre::RenderWindow::resize()函数Q这会导致OnSize()函数的递归回调Q因为Ogre::RenderWindow::resize()函数中会调用AdjustWindow()和SetWindowPos()函数Q这会导致发送WM_SIZE消息q羃窗口,从而导致问题的发生?br>
问题3Q?/strong>如何解决H口重置大小的问?br>解决ҎQ在OnSize()?span style="COLOR: red">不能调用Ogre::RenderWindow::resize()函数Q?strong style="COLOR: red">应该调用Ogre::RenderWindow::windowMovedOrResized()函数Q通知RenderWindow在渲染前重新讄Viewport的宽高比例?br>
问题4Q?/strong>怎样保L染@?br>分析Q上|看了一些相关的解决ҎQ发现大多用WM_TIMER消息来维持OGRE的主渲染循环Q这应该是下下策的方案了?.....当然q有其他的实现方案,譬如开另一个线E,q个Ҏq是可行的,但是L些不对味Q因为渲染明明应该在ȝE中才是最x案。于是我q了一下MFC闲下来的时候都q了些什么,最后发C以下解决ҎQ应该算是很不错但ƈ不难的解军_法了Qؓ什么没见网上有人提供这LҎ让我很不理解Q窝着藏着也得不到半点好处Q?br>解决ҎQ用空闲回调。该回调是需要承CWinApp::OnIdle()函数Q好像是叫这个,反正肯定带Idleq个单词Q,当主U程中的消息循环没有取到消息Ӟ调用PeekMessage()没有获取到消息)Q就会去调用q个函数Q于?.....在q个函数里调用绘制一帧吧QOgre::RenderWindow::update()Q另外有动画的话q需要调用Ogre::Root::_fireFrameRenderingQueued()Q因为动L新在q里。如果是惌所有渲染对象都更新一帧的话,直接调用Ogre::Root::renderOneFrame()吧?br>
解决Ҏ不一定最好,也不一定适合你的情况Q但愿能微薄之力,也是作ؓ我个人的备忘吧?

]]>
关于MVC PropertySet OperatorStack的一些设计思?/title><link>http://m.shnenglu.com/shanoa/archive/2010/11/20/134166.html</link><dc:creator>酿妹?/dc:creator><author>酿妹?/author><pubDate>Sat, 20 Nov 2010 11:30:00 GMT</pubDate><guid>http://m.shnenglu.com/shanoa/archive/2010/11/20/134166.html</guid><wfw:comment>http://m.shnenglu.com/shanoa/comments/134166.html</wfw:comment><comments>http://m.shnenglu.com/shanoa/archive/2010/11/20/134166.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/shanoa/comments/commentRss/134166.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/shanoa/services/trackbacks/134166.html</trackback:ping><description><![CDATA[最q在l公叔R码一个场景编辑器Q大致得实现的功能有Q?br>地Ş高度?br>地ŞU理?br>攄物件和房屋<br>攄_子pȝ<br>讄路径点和只能摄像机点<br><br>是个简单的不能再简单的场景~辑器了?..但是q样的一个工兯是很头痛的,特别是用C++来写...<br>头痛的原因不是别的,正是q个表现层和后台数据同步问题。这个在C++的UI库中目前q真没有什么现成的好办法,于是开始造轮子,为MFC写了PropertySet和OperatorStack?br>首先q个UI数据和内存数据双向同步的问题直接让我崩溃?..׃以前写过一些工P知道q东西如果不做个设计开始冲着功能写的话会有什么后果。嗯Q于是承封装了CMFCPropertyGridCtrl控gQؓ每个叶子属性项装了一个LeafItemQ根据属性名来更新PropertySet里对应的数据......具体实现几千字略- - 最l成型时代码q样Q?br>DynamicObject obj;<br>propertyGrid.attachObject(obj);<br>q里的DynamicObjectl承PropertySetQ于是propertyGrid控g׃昄obj里所有的属性数据了...然后是双向更新问题,目前是给Property里加了一个eventValueChanged事g响应Q让PropertyGridCtrl监听q些数据的变化,而propertyGridCtrlq个UI上的数据变化同样是派生实现CMFCPropertyGridCtrl的值变化响应函数来l绑定的LeafItem更新数据Q也是直接就h到Property里了?br>q有OperatorStack.....q个是操作栈Q记录用h作的Q用于撤销和重做的操作Q也用到了PropertySet来记录变化对象的属性快照,嗯,叫SnapShootRecord的类里面记录的都是一个对象的变化属性?br>先就记录q么多,很ؕ很不Ҏ懂,主要l我自己做个记录的,没啥贡献Q实际上q有很多不好用的地方Q所以最q在想一些改q设计,{我惛_了放上来详细设计和源码吧.......<img src ="http://m.shnenglu.com/shanoa/aggbug/134166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2010-11-20 19:30 <a href="http://m.shnenglu.com/shanoa/archive/2010/11/20/134166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>l于完成了自q模板设计Q初步实Cfilter_streambufQcge目启动......http://m.shnenglu.com/shanoa/archive/2010/10/12/129640.html酿妹?/dc:creator>酿妹?/author>Tue, 12 Oct 2010 11:37:00 GMThttp://m.shnenglu.com/shanoa/archive/2010/10/12/129640.htmlhttp://m.shnenglu.com/shanoa/comments/129640.htmlhttp://m.shnenglu.com/shanoa/archive/2010/10/12/129640.html#Feedback4http://m.shnenglu.com/shanoa/comments/commentRss/129640.htmlhttp://m.shnenglu.com/shanoa/services/trackbacks/129640.html实现的目的是Z在一些特定情况下不去使用boost的filter_streambufQ不使用boost::iostreams的理由如下:
1、基于运行时配置的过滤器Q效率稍?br>2、对于网l通讯而言Qboost的filter_streambuf乃至整个iostreams库都昑־较ؓ臃肿?br>所以,我自q写了一套filter_streambufQ承了std::streambufQƈ配合自己重新设计的archive和batch_dataq行|络通讯Q无论是效率q是易用性上都超Z用boost的iostreams。而boost的那套东西经q我的反复用后Q觉得更适合用在文gd和数据持久化上?br>如果要说哪里不如boost的filter_streamQ也是boost的filter_streambuf可以动态配|filterQ而我使用的是模板技术将filter的关pd~译期就兌了v来,所以只能是静态配|filter。下面是具体使用时的完整例子代码Q?br>
 1 #include <ccs/util/ios/ifilter_streambuf.hpp>
 2 #include <ccs/util/ios/ofilter_streambuf.hpp>
 3 #include <ccs/util/ios/memory_terminal.hpp>
 4 
 5 using namespace ccs;
 6 using namespace util;
 7 
 8 // 输出qo
 9 struct my_ofilter
10 {
11     typedef ios::ofilter_tag tag_type;
12 
13     template<typename OutT>
14     std::streamsize write(const char* p, std::streamsize n, OutT& _out)
15     {
16         std::streamsize i = 0;
17         for (; i < n; ++i)
18         {
19             char c = p[i];
20             if (_out.write(&++c, 1!= 1)
21                 break;
22         }
23         return i;
24     }
25 };
26 
27 // 输入qo
28 struct my_ifilter
29 {
30     typedef ios::ifilter_tag tag_type;
31 
32     template<typename InT>
33     std::streamsize read(char* p, std::streamsize n, InT& _in)
34     {
35         std::streamsize i = 0;
36         for (; i < n; ++i)
37         {
38             char c;
39             if (_in.read(&c, 1!= 1)
40                 break;
41             p[i] = --c;
42         }
43         return i;
44     }
45 };
46 
47 // 输出内存讑֤
48 struct memory_odevice
49 {
50     typedef ios::dest_tag tag_type;
51 
52     std::streamsize write(const char* p, std::streamsize n, ios::memory_oterminal& _out)
53     {
54         return _out.write(p, n);
55     }
56 };
57 
58 // 输入内存讑֤
59 struct memory_idevice
60 {
61     typedef ios::source_tag tag_type;
62 
63     std::streamsize read(char* p, std::streamsize n, ios::memory_iterminal& _in)
64     {
65         return _in.read(p, n);
66     }
67 };
68 
69 
70 int main(int _Argc, char** _Args)
71 {
72     char buf[256];
73     ios::memory_oterminal memout(buf, 256);
74     ios::memory_iterminal memin(buf, 256);
75     ios::ifilter_streambuf<ios::memory_iterminal, mpl::list2<my_ifilter, memory_idevice> > insbuf(&memin);
76     ios::ofilter_streambuf<ios::memory_oterminal, mpl::list2<my_ofilter, memory_odevice> > outsbuf(&memout);
77     std::istream is(&insbuf);
78     std::ostream os(&outsbuf);
79 
80     int num = 188;
81     os.write((char*)&num, sizeof(int));
82     os.flush();
83     is.read((char*)&num, sizeof(int));
84 
85     std::cout << num << std::endl;
86     system("pause");
87 }

代码中的意思就是将写入的数据逐字节的?Qƈ保存在内存缓冲里Q然后又从内存缓冲中dQ逐字节减1Qƈ输出到控制台Q一套经q过滤的d便完成了。由于用了模板元的list作ؓ链接Q在release模式下所有的qo器操作都是内联的Q这虽然也是我预想的效果Q但看完汇编码之后,着实让我高兴了一晚上Q这U成感真的是programer最大的乐趣?/p>

需要说明的是:代码中的mpl::list2是自己实现的模板元链?..q段旉考虑研究一下boost的ƈ替换q来Q因为那个list后面?让我觉得很不够智?..当然Q如果boost的list实现q于复杂Q或是不能让我的代码完全内联化的话,肯定不会考虑使用?br>
完成q个之后Q我便准备着手构建cge目Q所谓的cgeQ就是cloud game engine的羃?..֐思义是使用了云技术的游戏引擎Q我惛_业余旉试一些颠覆传lcs架构的在U游戏引擎架构设计,具体隄估计会有2个:
1、运用gpgpu group的ƈ行运技术,考虑使用目前市场占用率最大的nvidia tesla服务器配合cudaQ在服务器用physX实现一定的物理模拟?br>2、在x性较强的在线游戏中,pingg直是最大的挑战Q所以有选择性的使用云计技术,q是架构设计上的挑战?br>关于cge的设计思考和规划Q会另外开贴具体阐qͼq记录开发进度和情况?/span>



]]>
用cmake生成ogre1.7rc的项目文Ӟ哇擦?.....http://m.shnenglu.com/shanoa/archive/2010/10/12/129636.html酿妹?/dc:creator>酿妹?/author>Tue, 12 Oct 2010 10:59:00 GMThttp://m.shnenglu.com/shanoa/archive/2010/10/12/129636.htmlhttp://m.shnenglu.com/shanoa/comments/129636.htmlhttp://m.shnenglu.com/shanoa/archive/2010/10/12/129636.html#Feedback0http://m.shnenglu.com/shanoa/comments/commentRss/129636.htmlhttp://m.shnenglu.com/shanoa/services/trackbacks/129636.html

]]>
析构q程中内存相关错误的l大多数原因http://m.shnenglu.com/shanoa/archive/2010/07/01/119064.html酿妹?/dc:creator>酿妹?/author>Thu, 01 Jul 2010 07:47:00 GMThttp://m.shnenglu.com/shanoa/archive/2010/07/01/119064.htmlhttp://m.shnenglu.com/shanoa/comments/119064.htmlhttp://m.shnenglu.com/shanoa/archive/2010/07/01/119064.html#Feedback11http://m.shnenglu.com/shanoa/comments/commentRss/119064.htmlhttp://m.shnenglu.com/shanoa/services/trackbacks/119064.html今天记录一下长久以来屡ơ犯的错Q每ơ都是换一U方法编码来l过q个问题实现功能的,因ؓq个问题太过隐蔽Q导致今天才发现其中真正的原?..下面q行问题描述Q?br>
1std::map<std::string, Value> keyValue; // 在函数内部分配的堆栈对象Q局部变量)
2ReadData(keyValue);// 从dll中导出的函数
3keyValue.clear(); // delete中出现assert异常

W一行是在应用程序中的堆栈中分配的内存空间?br>W二行是我自己写的dll库,用来d一些数据加入到keyValue中?br>W三行是清空keyValueQ其实如果不写这一行的话,keyValue也会在函数结时清空Q到那时同样会出现错误?br>q一切乍一看没啥问题,keyValue是局部变量,Z么局部变量的释放会出现异帔R误呢Q这是因为第二行ReadData的缘故。ReadData的逻辑在另外一个可执行模块中,在其中分配的内存I间不一定与当前模块在同一个堆区?br>我们知道Qstd::map是一个树l构的容器,我在ReadData内部往keyValue中添加了数据QkeyValue中会在堆Z分配树节点,而这个节点将会在当前模块在keyValue的析构中被释放。也是_我无意中在dll模块中分配了堆空_又无意中在exe模块中企N放该I间Q这L行ؓD错误是不ؓ怪的?br>时刻牢记Q在一个模块中分配和释攑֐一块内存区域,警惕你所看不见的内存分配和释放?/strong>

]]>
完成的网l数据包文档?/title><link>http://m.shnenglu.com/shanoa/archive/2010/04/24/113460.html</link><dc:creator>酿妹?/dc:creator><author>酿妹?/author><pubDate>Sat, 24 Apr 2010 12:34:00 GMT</pubDate><guid>http://m.shnenglu.com/shanoa/archive/2010/04/24/113460.html</guid><wfw:comment>http://m.shnenglu.com/shanoa/comments/113460.html</wfw:comment><comments>http://m.shnenglu.com/shanoa/archive/2010/04/24/113460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/shanoa/comments/commentRss/113460.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/shanoa/services/trackbacks/113460.html</trackback:ping><description><![CDATA[<p>好久没写blog了,q次初步完成了一个文档化的网l流框架Q这玩意儿是pp样叫Q但具体是啥玩意儿呢Q其实就是将|络通讯数据l构l串行化到缓冲里Q再发送到|络的另一端,由另一端再串行化到相应的类型对象里。恩Q这听v来没啥难度呀Q但事实q如此Q呵呵,该架构徏立在asio基础之上Q目前完成了tcp通讯部分Q基本可以很方便的用了?br>        为啥我要写这么个架子Q因为网l通讯需要考虑很多情况Q如_包、未接收完整、缓冲不够大{情况,而且在项目开发过E中Q不断的d和修改一些通信协议相关的数据包l构。ؓ了让E序员不要管那么多麻烦的情况Q同时易于修改和d新的通讯协议Q于是就写了q么个架构,不过今天比较忙,q是下次传上用例代码吧,源码可能会在不久以后发布的通用库模板库里找到?br>恩,p发布自己的一个开源库Q徏立在stl和boost基础上,可跨q_~译 0 0......<br>到时候再说了?/p> <img src ="http://m.shnenglu.com/shanoa/aggbug/113460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2010-04-24 20:34 <a href="http://m.shnenglu.com/shanoa/archive/2010/04/24/113460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.fygscn.cn" target="_blank">þþþһ</a>| <a href="http://www.jiansuj.cn" target="_blank">޺ݺۺϾþþþ</a>| <a href="http://www.qqhaobofangqi.cn" target="_blank">ݺɫݺݺݺݺɫۺϾþ</a>| <a href="http://www.wyhwan.cn" target="_blank">þۺϾƷ</a>| <a href="http://www.jiulongpu.cn" target="_blank">þù޾Ʒ</a>| <a href="http://www.cpfang.cn" target="_blank">Ʒŷþþþ޹</a>| <a href="http://www.bpdb.com.cn" target="_blank">ҹƷþþþþapp</a>| <a href="http://www.dush.net.cn" target="_blank">þþƷ޾Ʒɫ</a>| <a href="http://www.spbbs.cn" target="_blank">Ļ޹˾þþƷ</a>| <a href="http://www.hrbdongguang.cn" target="_blank">þۺ97ɫ</a>| <a href="http://www.lmgv.cn" target="_blank">ۺϳ˾þС˵</a>| <a href="http://www.zhzzbjb.cn" target="_blank">Ʒþþþþһ</a>| <a href="http://www.51d1.cn" target="_blank">պŷһþþþ </a>| <a href="http://www.hfhyzt.cn" target="_blank">þҹɫƷ</a>| <a href="http://www.rahd.cn" target="_blank">þùƷþþƷ</a>| <a href="http://www.yingyu3g.cn" target="_blank">޾Ʒþþwww</a>| <a href="http://www.lismi.cn" target="_blank">ۿþ</a>| <a href="http://www.advanco.cn" target="_blank">Ʒ99þþƷ</a>| <a href="http://www.7dapei.cn" target="_blank">ŷ˾þۺ </a>| <a href="http://www.shejia.net.cn" target="_blank">޾þһ </a>| <a href="http://www.fanb1688.com.cn" target="_blank">þþþƷsmվ </a>| <a href="http://www.googledad.cn" target="_blank">þ99ƷСѼ</a>| <a href="http://www.vtdf.cn" target="_blank">һŷƬþ</a>| <a href="http://www.mxylzc.cn" target="_blank">þõӰ2021</a>| <a href="http://www.qcbijj.cn" target="_blank">þ99ֻƵƷ8</a>| <a href="http://www.szltw.cn" target="_blank">۲˾þþƷٸAV</a>| <a href="http://www.nsom.org.cn" target="_blank">þþƷһۺ</a>| <a href="http://www.qxri.cn" target="_blank">ľƷ99þù</a>| <a href="http://www.xorfbrt.cn" target="_blank">޹þþۺ</a>| <a href="http://www.0756400.cn" target="_blank">ݹ97þ÷ѹۿ</a>| <a href="http://www.0379f.cn" target="_blank">ƷŮþþþavˬ</a>| <a href="http://www.asyb.com.cn" target="_blank">ھƷþþþ</a>| <a href="http://www.e-zhishi.cn" target="_blank">99þù뾫Ʒ</a>| <a href="http://www.hx85.cn" target="_blank">99reþþƷҳ2020</a>| <a href="http://www.luben8151998.cn" target="_blank">ŷսþþþþþþ</a>| <a href="http://www.shuo123.cn" target="_blank">þݺҹҹվ</a>| <a href="http://www.manour.cn" target="_blank">þþƷAVũ帾Ů</a>| <a href="http://www.grayhound.cn" target="_blank">˾þô߽</a>| <a href="http://www.hoay.com.cn" target="_blank">Ʒþþ21p</a>| <a href="http://www.ithaiyang.com.cn" target="_blank">99þҹҹƷ</a>| <a href="http://www.tx273517.cn" target="_blank">99Ʒ99þþþþ97</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>