??xml version="1.0" encoding="utf-8" standalone="yes"?>一本久道久久综合狠狠躁AV,久久久综合香蕉尹人综合网,国产精品激情综合久久http://www.shnenglu.com/shanoa/category/11010.html其实我更爱姐?..zh-cnSun, 30 Jan 2011 20:38:32 GMTSun, 30 Jan 2011 20:38:32 GMT60boost的bjam~译指ohttp://www.shnenglu.com/shanoa/archive/2011/01/30/139605.html酿妹?/dc:creator>酿妹?/author>Sun, 30 Jan 2011 01:34:00 GMThttp://www.shnenglu.com/shanoa/archive/2011/01/30/139605.htmlhttp://www.shnenglu.com/shanoa/comments/139605.htmlhttp://www.shnenglu.com/shanoa/archive/2011/01/30/139605.html#Feedback0http://www.shnenglu.com/shanoa/comments/commentRss/139605.htmlhttp://www.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://www.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://www.shnenglu.com/shanoa/archive/2010/12/29/137693.html</guid><wfw:comment>http://www.shnenglu.com/shanoa/comments/137693.html</wfw:comment><comments>http://www.shnenglu.com/shanoa/archive/2010/12/29/137693.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/shanoa/comments/commentRss/137693.html</wfw:commentRss><trackback:ping>http://www.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>解决Ҏ(gu)Q在合适的地方调用SetCurrentDirectoy()把进E当前目录设|回q程工作目录?.....</p> <p>于是又是一下午+半个晚上的调试时?.....<br></p> <img src ="http://www.shnenglu.com/shanoa/aggbug/137693.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2010-12-29 20:49 <a href="http://www.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://www.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://www.shnenglu.com/shanoa/archive/2010/12/23/137336.html</guid><wfw:comment>http://www.shnenglu.com/shanoa/comments/137336.html</wfw:comment><comments>http://www.shnenglu.com/shanoa/archive/2010/12/23/137336.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/shanoa/comments/commentRss/137336.html</wfw:commentRss><trackback:ping>http://www.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但是大部分都很Ҏ(gu)解决。判断问题的原因可以看这几点Q?br>原因1Q如?x....q个值很,一般就?大一些,而且是在讉K某对象中的数据成员时出错的,那么q基本都是因对象指针为空Q你用了I对象指针调用了代码?br>原因2Q如?x...值同样很,但是q在访问某对象中的数据成员时出错,而是调用某函数那一行时出错的,那么q个函数十有八九(ji)是个虚函敎ͼ如果我说中的话,那原因应该如前面的原?相同Q只是这回是d虚函数表时就崩了?br>原因3Q如?x...值类似是0xcdcdcdcd?xeeeccc或者与q相q的敎ͼ且同h在访问数据成员或调用虚函数的时候出的问题,那么q就是个野指针问题了,释放了就别再用啊?br>原因4Q内存越界,q个对程序造成的麻烦比Mȝ都要大,但是问题q不隐蔽Q记得ؓ每个cȝ数据成员q行必要的初始化?br>原因5Q用了memset或ZeroMemory清空一些对象或对象数组。特别是对象数组Q很Ҏ(gu)让h忽略q个问题。有些程序员会觉得某对象里都是可以这hI的数据成员Q所以便q样做了Q但是往往虚函数表指针会被忽略Q这个指针绝对不能一赯清空的?br>ȝQ不要让表达索引的整形在初始化后是个未知|不要让指针没有在初始化时被赋0|不要不检查指针的值就拿它讉K成员函数和成员数据;不要重复释放指针所指对象;不要使用释放后和未初始化的内存数据;可以的话使用指针Q释放指针所指地址后,为指针赋0|只有在完全是内部cd构成且没有多态的cd对象上用memset为对象赋倹{?br> <img src ="http://www.shnenglu.com/shanoa/aggbug/137336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2010-12-23 23:41 <a href="http://www.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://www.shnenglu.com/shanoa/archive/2010/12/23/137249.html酿妹?/dc:creator>酿妹?/author>Wed, 22 Dec 2010 17:39:00 GMThttp://www.shnenglu.com/shanoa/archive/2010/12/23/137249.htmlhttp://www.shnenglu.com/shanoa/comments/137249.htmlhttp://www.shnenglu.com/shanoa/archive/2010/12/23/137249.html#Feedback5http://www.shnenglu.com/shanoa/comments/commentRss/137249.htmlhttp://www.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羃?yu)窗口,从而导致问题的发生?br>
问题3Q?/strong>如何解决H口重置大小的问?br>解决Ҏ(gu)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上|看了一些相关的解决Ҏ(gu)Q发现大多用WM_TIMER消息来维持OGRE的主渲染循环Q这应该是下下策的方案了?.....当然q有其他的实现方案,譬如开另一个线E,q个Ҏ(gu)q是可行的,但是L些不对味Q因为渲染明明应该在ȝE中才是最x案。于是我q了一下MFC闲下来的时候都q了些什么,最后发C以下解决Ҏ(gu)Q应该算是很不错但ƈ不难的解军_法了Qؓ什么没见网上有人提供这LҎ(gu)让我很不理解Q窝着藏着也得不到半点好处Q?br>解决Ҏ(gu)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>
解决Ҏ(gu)不一定最好,也不一定适合你的情况Q但愿能微薄之力,也是作ؓ我个人的备忘吧?

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

]]>
析构q程中内存相关错误的l大多数原因http://www.shnenglu.com/shanoa/archive/2010/07/01/119064.html酿妹?/dc:creator>酿妹?/author>Thu, 01 Jul 2010 07:47:00 GMThttp://www.shnenglu.com/shanoa/archive/2010/07/01/119064.htmlhttp://www.shnenglu.com/shanoa/comments/119064.htmlhttp://www.shnenglu.com/shanoa/archive/2010/07/01/119064.html#Feedback10http://www.shnenglu.com/shanoa/comments/commentRss/119064.htmlhttp://www.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>

]]>
异常处理的可恉?/title><link>http://www.shnenglu.com/shanoa/archive/2009/08/02/91967.html</link><dc:creator>酿妹?/dc:creator><author>酿妹?/author><pubDate>Sun, 02 Aug 2009 09:12:00 GMT</pubDate><guid>http://www.shnenglu.com/shanoa/archive/2009/08/02/91967.html</guid><wfw:comment>http://www.shnenglu.com/shanoa/comments/91967.html</wfw:comment><comments>http://www.shnenglu.com/shanoa/archive/2009/08/02/91967.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/shanoa/comments/commentRss/91967.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/shanoa/services/trackbacks/91967.html</trackback:ping><description><![CDATA[也许q个错误是很q稚的,但是他着实难住了我好几个时Q一度我q以为永q解不开q个谜题?*o*)Q情冉|q样的,异常在抛Z后,到达处理异常的catch域,但这时上下文必须依然有效才行Q否则catch接收不到抛出的异常。具体代码如下:<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_6_454_Open_Image onclick="this.style.display='none'; Codehighlighter1_6_454_Open_Text.style.display='none'; Codehighlighter1_6_454_Closed_Image.style.display='inline'; Codehighlighter1_6_454_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_6_454_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_6_454_Closed_Text.style.display='none'; Codehighlighter1_6_454_Open_Image.style.display='inline'; Codehighlighter1_6_454_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>    </span><span id=Codehighlighter1_6_454_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_6_454_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        moeutil::simple_pool spool(</span><span style="COLOR: #000000">32</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> p1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> spool.malloc(</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> p2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> spool.malloc(</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> p3 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> spool.malloc(</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> p4 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> spool.malloc(</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> p5 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> spool.malloc(</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> p6 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> spool.malloc(</span><span style="COLOR: #000000">70</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">std::cout<<p1<<'\n'<<p2<<'\n'<<p3<<'\n'<<p4<<'\n'<<p5<<'\n'<<p6<<std::endl;</span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        spool.free(p1);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        spool.free(reinterpret_cast</span><span style="COLOR: #000000"><</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*></span><span style="COLOR: #000000">(p2)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        spool.free(p3);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        spool.free(p4);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        spool.free(p5);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        spool.free(p6);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_484_521_Open_Image onclick="this.style.display='none'; Codehighlighter1_484_521_Open_Text.style.display='none'; Codehighlighter1_484_521_Closed_Image.style.display='inline'; Codehighlighter1_484_521_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_484_521_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_484_521_Closed_Text.style.display='none'; Codehighlighter1_484_521_Open_Image.style.display='inline'; Codehighlighter1_484_521_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>    }</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (moeutil::Exception</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000"> e)</span><span id=Codehighlighter1_484_521_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_484_521_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        std::cout</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">e.what()</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">std::endl;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>    }</span></span></div> q是一个简易的内存池类Q其中simple_pool的析构函C抛出异常Q然后free函数也会抛出异常。析构函数可以检是否有内存泄漏Q而free函数是检到无效的传入指针时会抛出异常。析构抛出异常是没问题的Q但是free抛出异常的时候问题就来了Q当free抛出异常Ӟ׃会脱try块,所以spool也会被析构,q样׃陷入ȝQ由于没有全部freeQ所以析构本w也会抛出异常,D了类g异常q代的情c也是_在throw一个异常的q程中又一ơ触发了异常。于是windowspȝ的debug error对话框出CQ而且是出现在throw那一行?br>此随W用于提醒自己勿犯第二次Q? <img src ="http://www.shnenglu.com/shanoa/aggbug/91967.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2009-08-02 17:12 <a href="http://www.shnenglu.com/shanoa/archive/2009/08/02/91967.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC~译器中的一些编译时命o备忘http://www.shnenglu.com/shanoa/archive/2009/07/30/91730.html酿妹?/dc:creator>酿妹?/author>Thu, 30 Jul 2009 10:00:00 GMThttp://www.shnenglu.com/shanoa/archive/2009/07/30/91730.htmlhttp://www.shnenglu.com/shanoa/comments/91730.htmlhttp://www.shnenglu.com/shanoa/archive/2009/07/30/91730.html#Feedback0http://www.shnenglu.com/shanoa/comments/commentRss/91730.htmlhttp://www.shnenglu.com/shanoa/services/trackbacks/91730.html 

// 加蝲静态库
#pragma comment(lib, "路径+LIB库名")

// 止1221可?/span>
#pragma warning(disable: 1221)

// 导入q加载DLL exe之类的二q制动态库
#import "路径+二进制库?/span>"

// ClassNamecM的s_Data静态成员变量定义在头文件中旉止重定义
__declspec(selectany) int ClassName::s_Data = 0;

// 当用户用void func()函数Ӟ~译器将作出警告Qƈ昄“不推荐用该函数”字样
__declspec(deprecated("不推荐用该函数")) void func();


]]>
记录一下C++标准感(zhn)?/title><link>http://www.shnenglu.com/shanoa/archive/2009/07/29/91647.html</link><dc:creator>酿妹?/dc:creator><author>酿妹?/author><pubDate>Wed, 29 Jul 2009 15:46:00 GMT</pubDate><guid>http://www.shnenglu.com/shanoa/archive/2009/07/29/91647.html</guid><wfw:comment>http://www.shnenglu.com/shanoa/comments/91647.html</wfw:comment><comments>http://www.shnenglu.com/shanoa/archive/2009/07/29/91647.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/shanoa/comments/commentRss/91647.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/shanoa/services/trackbacks/91647.html</trackback:ping><description><![CDATA[<p>        今天l于完成了自q日志库核心的几个cd法Q折腾了怹Q感觉安全性很好,一些多U程的死锁问题已l逐个排除了。由于需要跟C++标准库的输入输出共事,所以么ȝ自认为理解了C++标准的一些特性,C来以供备忘?br>        首先是文件流Q关于该的问题Q要扯就扯远了,主要说一说std::wofstream的问题。不要被q个w骗了Q其实它输出到文件上的依然还是那么回事,没有丝毫的变化。如果你是想输出Unicode到文本文件中Q那么你最好是用ios::binary模式Q然后一股脑的倒入文g中,如果要是使用<<重蝲W号的话Q输出到文g中的跟std::ofstream没区别,而且中文q无法输出。如果你遇见中文无法输出的问题,恩,可以调用std::wofstream::imbue()Ҏ(gu)Q具体也是一行:ofs.imbue(std::locale("chs"));搞定?br>我想QC++标准库ƈ不支持Unicode~码Q而是l字W地域化的编码方式,中文的可能也是GBK吧,听说C++0x标准会纳入Unicode~码支持Q如果是q样的话q心多了?br>        然后q有个不省心的地方就是流的streambuf中的~冲大小了,我发玎ͼfstream中的写缓冲居然一直是0啊,q个很头疼了,需要给文g指定缓冲的大小?/p> <img src ="http://www.shnenglu.com/shanoa/aggbug/91647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2009-07-29 23:46 <a href="http://www.shnenglu.com/shanoa/archive/2009/07/29/91647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DLL的共享测?/title><link>http://www.shnenglu.com/shanoa/archive/2009/06/27/88666.html</link><dc:creator>酿妹?/dc:creator><author>酿妹?/author><pubDate>Sat, 27 Jun 2009 15:04:00 GMT</pubDate><guid>http://www.shnenglu.com/shanoa/archive/2009/06/27/88666.html</guid><wfw:comment>http://www.shnenglu.com/shanoa/comments/88666.html</wfw:comment><comments>http://www.shnenglu.com/shanoa/archive/2009/06/27/88666.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/shanoa/comments/commentRss/88666.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/shanoa/services/trackbacks/88666.html</trackback:ping><description><![CDATA[今天E微实验了一下DLL的数据共享问题,做了两种情况下的试Q第一U是两个q程同时调用一个DLL的实验,另一U是一个进E调用一个两个DLLQ然后这两个DLL有依赖关p,记录一下得到的试l果?br><br>当一个进E调用LoadLibrary、LoadLibraryEx以及FreeLibraryӞDllMain会被调用Q从DllMain的入口函数的W二个参数可以得知是加蝲q是释放。LoadLibraryEx的flag参数传入DONT_RESOLVE_DLL_REFERENCES可以跌DllMain的调用,q在很多时候是有用的?br>当一个进E在调用LoadLibrary后又启动了线E,则每启动一个线E,׃调用一ơDllMainQ同样可以从DllMain的第二个参数的值来区分调用时由q程引v的还是由U程引v的。第二个参数的g般有4U,如下Q?br> DLL_PROCESS_ATTACH<br> DLL_PROCESS_DETACH<br> DLL_THREAD_ATTACH<br> DLL_THREAD_DETACH<br>不用解释也能看得出来分别是表CZ么意义了Q通过q个可以选择性的对DLL中的数据q行初始化?br>如果是两个进E同时调用一个DLL的话Q数据是不会׃n的,除非你设|了segؓ׃nQ具体不同的~译器会有不同的讄Ҏ(gu)。两个进E对同一个DLL的调用计C是分开的,q让我很攑ֿ了,之前一直害怕的冲突问题释然?br><br><br>当一个进E去调用一个DLLԌ而甲又在初始化的时候调用了DLL乙,q程通过甲的函数来访问了DLL乙,同时自己也亲自调用了DLL乙ƈ取出和更改了数据。这L情况下,DLL乙的引用计数是共享的Q数据也是共享的Q加载和释放都很安全Q之前担心DLL乙中的单件会被重复调用的情况也不可能存在了? <img src ="http://www.shnenglu.com/shanoa/aggbug/88666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/shanoa/" target="_blank">酿妹?/a> 2009-06-27 23:04 <a href="http://www.shnenglu.com/shanoa/archive/2009/06/27/88666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL的备忘录http://www.shnenglu.com/shanoa/archive/2009/06/26/88602.html酿妹?/dc:creator>酿妹?/author>Fri, 26 Jun 2009 13:30:00 GMThttp://www.shnenglu.com/shanoa/archive/2009/06/26/88602.htmlhttp://www.shnenglu.com/shanoa/comments/88602.htmlhttp://www.shnenglu.com/shanoa/archive/2009/06/26/88602.html#Feedback0http://www.shnenglu.com/shanoa/comments/commentRss/88602.htmlhttp://www.shnenglu.com/shanoa/services/trackbacks/88602.htmlq入后输?show databases命o可以看到所有的数据库了?br>然后是新用户的问题,如果你想d一个新的用P有很下列三种Ҏ(gu)Q?br>1、直接在mysql数据库中的user表里直接insertQ但是很ȝ
2、用GRANT [权限] ON *.* TO [username]@[客户端地址] identified by [password]  q样的命令,具体可以看文?br>3、用CREATE USER [用户名] q样的命令创建用?br>q里要注意的是,W二U方法创建用L话,必须带有密码Q如果你惛_建无密码用户的话Q则必须用第3U方法?br>最后就是给用户权限的问题,一般都使用GRANT语句Q具体可参考文档,不过你也可以直接对db表直接进行修改和dQ只要你不怕麻烦?

]]>
ŮƷþþþ| þþþۺĻ| ҹþþþþýӰ | 99þѹۺϾƷ| þùƷ99| 99þһ| þۺɫ| þѵľƷV| ˾þô߽Ʒ| ݺɫþۺѿ | ձձȾþþƷ| ݺɫۺվþþþþþø| þҹɫƷվ| ƷȾþþø| ھƷþþþӰԺ޹² | 97þþƷһ| þۺ97ɫֱ| þþþ޾Ʒ| ŷ˼Ծþ| þþƷŷƬ| þ99Ʒþþþþhb | þseƷһ| þ޾Ʒa| ˾Ʒһþ| Ʒ18þþþþvr| þֻ⾫Ʒ99| þþþŮۺ| þþƷһ| 99þĻ| 99þ99þþþƷ| ˾þĻ| þþþAVƬ| ĻhdþþƷ| þþž޾Ʒ| ձһþ| þþƷa޹v岻| þˬˬˬ | Ʒһþ| ƷVIDEOSSEXþ÷| Ʒþ| ޹Ʒþþþ|