【VB6】实现VB6中类的静态方法
来源:互联网 发布:立体模拟软件 编辑:程序博客网 时间:2024/06/05 10:58
【VB6】实现VB6中类的静态方法
标签: vbclass类静态函数
2016-02-13 19:52 303人阅读 评论(0)收藏举报
本文章已收录于:
分类:
作者同类文章X
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
- 原创文章欢迎支持
- 使用ActiveX DLL创建支持静态函数的类
- 创建工程
- 创建类
- 编译导出
- 使用方法
- 使用ActiveX DLL创建支持静态函数的类
原创文章,欢迎支持
在VB的使用过程中,较为高级和较为具有兼容性的编程方式是创建类模块。
比如创建了一个数组创建类,专门用来创建特定类型的数组,它被存在一个“ArrayHelper.cls”文件中。代码如下:
<code class="language-vb hljs vbnet has-numbering"><span class="hljs-keyword">Option</span> <span class="hljs-keyword">Explicit</span><span class="hljs-comment">'///////////////////</span><span class="hljs-comment">'@@summary</span><span class="hljs-comment">'@@require</span><span class="hljs-comment">'@@reference</span><span class="hljs-comment">'@@license</span><span class="hljs-comment">'@@author</span><span class="hljs-comment">'@@create</span><span class="hljs-comment">'@@modify</span><span class="hljs-comment">'////////////////////</span><span class="hljs-comment">'-------------------</span><span class="hljs-comment">' 初始化</span><span class="hljs-comment">'-------------------</span><span class="hljs-keyword">Private</span> <span class="hljs-keyword">Sub</span> Class_Initialize()<span class="hljs-keyword">End</span> <span class="hljs-keyword">Sub</span><span class="hljs-comment">'--------------------</span><span class="hljs-comment">' 销毁</span><span class="hljs-comment">'--------------------</span><span class="hljs-keyword">Private</span> <span class="hljs-keyword">Sub</span> Class_Terminate()<span class="hljs-keyword">End</span> <span class="hljs-keyword">Sub</span><span class="hljs-comment">'///////////////////////////</span><span class="hljs-comment">'//</span><span class="hljs-comment">'// 公有方法</span><span class="hljs-comment">'//</span><span class="hljs-comment">'///////////////////////////</span><span class="hljs-keyword">Public</span> <span class="hljs-keyword">Function</span> StringArray(<span class="hljs-keyword">ParamArray</span> arr()) <span class="hljs-keyword">As</span> <span class="hljs-built_in">String</span>() <span class="hljs-keyword">Dim</span> a() <span class="hljs-keyword">As</span> <span class="hljs-built_in">String</span> <span class="hljs-keyword">Dim</span> i <span class="hljs-keyword">As</span> <span class="hljs-built_in">Integer</span> <span class="hljs-keyword">ReDim</span> a(UBound(arr)) <span class="hljs-keyword">For</span> i = LBound(arr) <span class="hljs-keyword">To</span> UBound(arr) <span class="hljs-keyword">If</span> VarType(arr(i)) <> vbString <span class="hljs-keyword">Then</span> Err.Raise <span class="hljs-number">104</span>, , <span class="hljs-string">"[SunSoft]参数非String,请检查代码!"</span> <span class="hljs-keyword">End</span> <span class="hljs-keyword">If</span> a(i) = <span class="hljs-built_in">CStr</span>(arr(i)) <span class="hljs-keyword">Next</span> i StringArray = a<span class="hljs-keyword">End</span> <span class="hljs-keyword">Function</span><span class="hljs-keyword">Public</span> <span class="hljs-keyword">Function</span> IntegerArray(<span class="hljs-keyword">ParamArray</span> arr()) <span class="hljs-keyword">As</span> <span class="hljs-built_in">Integer</span>() <span class="hljs-keyword">Dim</span> a() <span class="hljs-keyword">As</span> <span class="hljs-built_in">Integer</span> <span class="hljs-keyword">Dim</span> i <span class="hljs-keyword">As</span> <span class="hljs-built_in">Integer</span> <span class="hljs-keyword">ReDim</span> a(UBound(arr)) <span class="hljs-keyword">For</span> i = LBound(arr) <span class="hljs-keyword">To</span> UBound(arr) <span class="hljs-keyword">If</span> VarType(arr(i)) <> vbInteger <span class="hljs-keyword">Then</span> Err.Raise <span class="hljs-number">104</span>, , <span class="hljs-string">"[SunSoft]参数非Integer,请检查代码!"</span> <span class="hljs-keyword">End</span> <span class="hljs-keyword">If</span> a(i) = <span class="hljs-built_in">CStr</span>(arr(i)) <span class="hljs-keyword">Next</span> i IntegerArray = a<span class="hljs-keyword">End</span> <span class="hljs-keyword">Function</span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li><li>39</li><li>40</li><li>41</li><li>42</li><li>43</li><li>44</li><li>45</li><li>46</li><li>47</li><li>48</li><li>49</li><li>50</li><li>51</li><li>52</li><li>53</li><li>54</li></ul><div class="save_code tracking-ad" style="display: none;" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" alt="" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li><li>39</li><li>40</li><li>41</li><li>42</li><li>43</li><li>44</li><li>45</li><li>46</li><li>47</li><li>48</li><li>49</li><li>50</li><li>51</li><li>52</li><li>53</li><li>54</li></ul>
当我需要在其他的地方使用这里的方法的时候,我必须创建一个类,才能使用这个方法。如下:
<code class="language-vb hljs vbnet has-numbering"> <span class="hljs-keyword">Dim</span> k() <span class="hljs-keyword">As</span> <span class="hljs-built_in">String</span> <span class="hljs-keyword">Dim</span> o <span class="hljs-keyword">As</span> <span class="hljs-keyword">New</span> ArrayHelper k = o.StringArray(<span class="hljs-string">"1"</span>, <span class="hljs-string">"2222"</span>) <span class="hljs-keyword">Stop</span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li></ul><div class="save_code tracking-ad" style="display: none;" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" alt="" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li></ul>
在Stop命令帮助下,我们在调试模式下验证,k变量的确得到了正确的数组。
但是,由于VB6的机制,我们没法在不创建对象的时候调用这个对象的方法。
今天,创建ActiveX DLL的时候,意外发现了一个方法。
使用ActiveX DLL创建支持静态函数的类
创建工程
创建一个ActiveX DLL工程,工程名为SunSoft
创建类
首先,添加一个类模块(导入cls文件
或者编写创建一个新的类模块
)
然后,在右侧的属性窗口,按照如下的表格设置类的属性
编译导出
编译,生成SunSoft.dll
使用方法
新建一个普通exe工程,然后在工程-引用-浏览(B)...
中选择Sunsoft.dll
,完成在新工程中对它的引用。
在新工程的窗口中绘制一个按钮,为它增加单击事件。
<code class="language-vb hljs vbnet has-numbering"><span class="hljs-keyword">Dim</span> k() <span class="hljs-keyword">As</span> <span class="hljs-built_in">String</span>k = ArrayHelper.StringArray(<span class="hljs-string">"1"</span>, <span class="hljs-string">"2222"</span>)<span class="hljs-keyword">Stop</span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li></ul><div class="save_code tracking-ad" style="display: none;" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets_01.png" alt="" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li></ul>
可以看到我们可以直接访问到ArrayHelper提供的方法了。
- 顶
- 0
- 踩
- 0
- 上一篇【VB6】VB6类库项目中的Persistable
- 下一篇VB6存取UTF-8文件
0 0
- 【VB6】实现VB6中类的静态方法
- 【VB6】实现VB6中类的静态方法
- VB6 中处理 INI 文件的方法
- VB6中模拟按钮的实现
- vb6
- vb6
- VB6
- VB6 中实现图标显示在系统右下角托盘的方法
- VB6下接口的实现
- VB6 FORM窗体上控件实现滚动的方法
- vb6中字符串转控件名的方法
- VB6中ByRef 参数类型不正确的处理方法
- VB6中使用Winsock穿越各种代理的实现
- 在VB6.0中实现大面积不规则区域的填充
- 在VB6中使用API函数实现矢量图的绘制。
- 在VB6中使用API函数实现矢量图的绘制
- VB6中实现浮点数各个字节的提取
- 【VB6】VB6类库项目中Instancing属性
- (23)成员访问运算符、条件运算符、逗号运算符
- 关于MyBatis一些小错误,元素内容必须由格式正确的字符数据或标记组成.
- Visual Studio制作安装程序教程
- 关于图片压缩
- Android4.1添加新的按键(4)
- 【VB6】实现VB6中类的静态方法
- linux下离线安装tesseract-ocr
- 编程中无穷大的量的使用技巧
- 读取手机联系人
- CintaNotes:怎么恢复误删的笔记
- uva10881 Piotr's Ants
- abap中利用se95还原程序到原始版本
- 初识Java深拷贝和浅拷贝(深克隆和浅克隆)
- 电商放大镜效果