﻿<?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++博客-findman-随笔分类-C++学习日志</title><link>http://www.cppblog.com/findman/category/4451.html</link><description>迷失无需寻觅</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 21:38:36 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 21:38:36 GMT</pubDate><ttl>60</ttl><item><title>VC2005 BOLB数据的读取和更新</title><link>http://www.cppblog.com/findman/archive/2007/06/25/26888.html</link><dc:creator>找东西</dc:creator><author>找东西</author><pubDate>Mon, 25 Jun 2007 05:37:00 GMT</pubDate><guid>http://www.cppblog.com/findman/archive/2007/06/25/26888.html</guid><wfw:comment>http://www.cppblog.com/findman/comments/26888.html</wfw:comment><comments>http://www.cppblog.com/findman/archive/2007/06/25/26888.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/findman/comments/commentRss/26888.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/findman/services/trackbacks/26888.html</trackback:ping><description><![CDATA[<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"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encoding</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&nbsp;ascii&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Encoding::ASCII;<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oleDbDataAdapter1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">MissingSchemaAction&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;MissingSchemaAction::AddWithKey;<br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oleDbDataAdapter1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Fill(dataSet11);<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dataSet11</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Tables[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">userinfo</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;table1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Rows[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStream</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&nbsp;fs2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;gcnew&nbsp;FileStream(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">E:\\test1.rtf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,FileMode::OpenOrCreate,&nbsp;FileAccess::Read);<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Byte</span><span style="COLOR: #000000">&gt;^</span><span style="COLOR: #000000">bytes2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;gcnew&nbsp;array</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Byte</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">((</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)fs2</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Length);<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs2</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Read(bytes2,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)fs2</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Length);<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs2</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Close();<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">rtfconn</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;bytes2;<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oleDbDataAdapter1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Update(dataSet11,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">userinfo</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Byte</span><span style="COLOR: #000000">&gt;^</span><span style="COLOR: #000000">bytes&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(array</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Byte</span><span style="COLOR: #000000">&gt;^</span><span style="COLOR: #000000">)row[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">rtfconn</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ArraySize&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;bytes</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetUpperBound(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStream</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&nbsp;fs&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;gcnew&nbsp;FileStream(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">E:\\test.rtf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,FileMode::OpenOrCreate,&nbsp;FileAccess::Write);<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Write(bytes,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,ArraySize);<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;richTextBox1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">LoadFile(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">E:\\test.rtf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span></div>
<br>上面是读和写入一个Access库中的rtf文件的核心代码。
<img src ="http://www.cppblog.com/findman/aggbug/26888.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/findman/" target="_blank">找东西</a> 2007-06-25 13:37 <a href="http://www.cppblog.com/findman/archive/2007/06/25/26888.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC.NET 2005 DLL加载</title><link>http://www.cppblog.com/findman/archive/2007/06/07/25746.html</link><dc:creator>找东西</dc:creator><author>找东西</author><pubDate>Thu, 07 Jun 2007 08:57:00 GMT</pubDate><guid>http://www.cppblog.com/findman/archive/2007/06/07/25746.html</guid><wfw:comment>http://www.cppblog.com/findman/comments/25746.html</wfw:comment><comments>http://www.cppblog.com/findman/archive/2007/06/07/25746.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/findman/comments/commentRss/25746.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/findman/services/trackbacks/25746.html</trackback:ping><description><![CDATA[<p>我用的是VS2005，网络上面关于C++ 的DLL加载基本上都是VC6.0的东西</p>
<p>自己比较懒，看到那些代码和工程在VS2005上面用不上就有点望而却步了&#8230;&#8230;&#8230;&#8230;</p>
<p>最近打算找一个软件来分析bsp地图文件&#8230;&#8230;&#8230;&#8230;</p>
<p>结果没有找到很好软件，本来想反编译一个java的程序看看是怎么写的</p>
<p>不过失败&#8230;&#8230;&#8230;&#8230;，大概是用了混淆器吧</p>
<p>所有就开始硬着头皮打算写一个这样的分析器</p>
<p>拿着本C++游戏开发的书就搞上了</p>
<p>浏览过前面的基础，就碰到了DLL加载的问题</p>
<p>发现，在VC2005里面，工程里面的东西和VC６里面完全不是一个东西吗。。。</p>
<p>连那个选项都没有，我一时蒙了，没有办法只好看帮助&#8230;&#8230;&#8230;&#8230;</p>
<p>还好，在帮助里面找到了一个DllScreenCap的事例，不过对我来说有点复杂&#8230;&#8230;&#8230;&#8230;看不蛮懂</p>
<p>以前没有搞过windows编程</p>
<p>首先打开里面DLL工程的发现里面有系统生成的CPP和H文件没有任何的修改，也就是说</p>
<p>DLL里面来自定义类和函数，不需要对这些代码修改（赫赫～～当然这是对我所写的简单代码而言）</p>
<p>然后发现了，几个比较关键的代码和文件修改：</p>
<p>１、DllScreenCap.def，里面放入了几个需要导出的函数的名字</p>
<p>２、在调用程序DLL的代码中，包含了自己定义类的头文件（注意这里调用的不是系统自己生成的那个头文件，如果你调用那个头文件会报stdafx相关的错）</p>
<p>３、在头文件中包含了#pragma comment(lib, "DllScreenCap.lib")，我其实也不是很明白，我为什么还要这里开加载lib文件，应该说在附加资源的设置里面已经指向了那个目录</p>
<p>值得注意的应该就这么几点吧&#8230;&#8230;&#8230;&#8230;</p>
<img src ="http://www.cppblog.com/findman/aggbug/25746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/findman/" target="_blank">找东西</a> 2007-06-07 16:57 <a href="http://www.cppblog.com/findman/archive/2007/06/07/25746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>