DLL插件(转)

论坛 期权论坛     
匿名小用户   2019-10-20 18:54   26   0
<div>前言:本文通过一个简单的工程描述了一种插件设计的思想。复杂设计和模块化分解能力是衡量一个程序员水平的重要标志,欢迎大家和我探讨。</div>
<div>1.我们的目的是在Plug-Ins目录里面查找“ptz*.dll”格式的云台插件的动态链接库。每个库可支持多个协议,通过查找该目录下的合法插件,有此插件创建出某个协议的实例,达到通过该协议操作云台的目的。</div>
<div>2.结构体定义:<span lang="en-us" style="font-size:12pt;color:#000000;"><font face="Times New Roman">ComParam</font></span><span style="font-size:12pt;color:#000000;font-family:'宋体';">为串口通信参数:(定义在include/ComManager/ComParam.h文件中)</span><span lang="en-us" style="font-size:12pt;color:#000000;">&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;</span><p></p></div>
<div>
<p align="left" class="MsoNormal" style="text-align:left;"><font face="Times New Roman"><span lang="en-us" style="font-size:12pt;color:#0000FF;">class</span><span lang="en-us" style="font-size:12pt;color:#000000;"> COMPARAMEXT_API ComParam</span></font></p><p></p>
<p align="left" class="MsoNormal" style="text-align:left;"><span lang="en-us" style="font-size:12pt;color:#000000;"><font face="Times New Roman">{</font></span></p><p></p>
<p align="left" class="MsoNormal" style="text-align:left;"><font face="Times New Roman"><span lang="en-us" style="font-size:12pt;color:#0000FF;">public</span><span lang="en-us" style="font-size:12pt;color:#000000;">:</span></font></p><p></p>
<p align="left" class="MsoNormal" style="text-align:left;"><font face="Times New Roman"><span lang="en-us" style="font-size:12pt;color:#000000;"><span> </span>ComParam(<span> </span></span><span lang="en-us" style="font-size:12pt;color:#0000FF;">int</span><span lang="en-us" style="font-size:12pt;color:#000000;"> nBaudRate,</span><span lang="en-us" style="font-size:12pt;color:#008000;">// </span></font><span style="font-size:12pt;color:#008000;font-family:'宋体';">波特率</span><span lang="en-us" style="font-size:12pt;color:#000000;"></span></p><p></p>
<p align="left" class="MsoNormal" style="text-align:left;"><font face="Times New Roman"><span lang="en-us" style="font-size:12pt;color:#000000;"><span> </span><span></span></span><span lang="en-us" style="font-size:12pt;color:#0000FF;">int</span><span lang="en-us" style="font-size:12pt;color:#000000;"> nByteSize = </span><span lang="en-us" style="font-size:12pt;color:#FF0000;">8</span><span lang="en-us" style="font-size:12pt;color:#000000;">, </span><span lang="en-us" style="font-size:12pt;color:#008000;">// </span></font><span style="font-size:12pt;color:#008000;font-family:'宋体';">数据位</span><span lang="en-us" style="font-size:12pt;color:#000000;"></span></p><p></p>
<p align="left" class="MsoNormal" style="text-align:left;"><font face="Times New Roman"><span lang="en-us" style="font-size:12pt;color:#000000;"><span> </span><span></span></span><span lang="en-us" style="font-size:12pt;color:#0000FF;">int</span><span lang="en-us" style="font-size:12pt;color:#000000;"> nParity = </span><span lang="en-us" style="font-size:12pt;color:#FF0000;">0</span><span lang="en-us" style="font-size:12pt;color:#000000;">,<span></span></span><span lang="en-us" style="font-size:12pt;color:#008000;">// </span></font><span style="font-size:12pt;color:#008000;font-family:'宋体';">校验位</span><font face="Times New Roman"><span style="font-size:12pt;color:#008000;"> <span lang="en-us">0 - NOPARITY</span></span><span lang="en-us" style="font-size:12pt;color:#000000;"></span></font></p><p></p>
<p align="left" class="MsoNormal" style="text-indent:-21pt;text-align:left;"><font face="Times New Roman"><span lang="en-us" style="font-size:12pt;color:#000000;"><span> </span><span></span></span><span lang="en-us" style="font-size:12pt;color:#0000FF;">int</span><span lang="en-us" style="font-size:12pt;color:#000000;"> nStopBits = </span><span lang="en-us" style="font-size:12pt;color:#FF0000;">0</span><span lang="en-us" style="font-size:12pt;color:#000000;">);<span></span></span><span lang="en-us" style="font-size:12pt;color:#008000;">// </span></font><span style="font-size:12pt;color:#008000;font-family:'宋体';">停止位</span><span lang="en-us" style="font-size:12pt;color:#008000;"><font face="Times New Roman"> 0 - ONESTOPBIT(</font></span><span style="font-size:12pt;color:#008000;font-family:'宋体';">参考</span><span lang="en-us" style="font-size:12pt;color:#008000;"><font face="Times New Roman">winbase.h</font></span><span style="font-size:12pt;color:#008000;font-family:'宋体';">中的定义)</span></p>
<p align="left" class="MsoNormal" style="line-height:14pt;text-align:left;"><span lang="en-us" style="font-size:12pt;color:#000000;"><font face="Times New Roman">};</font></span></p>
<p align="left" class="MsoNormal" style="line-height:14pt;text-align:left;"><span lang="en-us" style="font-size:12pt;color:#000000;"><font face="Times New Roman">3.为了达到使用dll的目的,先封装几个简单的类:</font></span></p>
<p align="left" class="MsoNormal" style="line-hei
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:50
帖子:1079
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP