<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;"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /></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 |
|