当前位置:编程学习 > VB >>

全局变量怎么处理?

--------------------编程问答-------------------- 共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的:
·进程之间松耦合
·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。
·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。
·方便在线开关服务,只需删除或创建该临时文本文件即可。
·方便实现分布式和负载均衡。
·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满)
·……
--------------------编程问答--------------------
引用 1 楼 zhao4zhong1 的回复:
共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的:
·进程之间松耦合
·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。
·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。
·方便在线开关服务,只需删除或创建该临时文本文件即可。
·方便实现分布式和负载均衡。
·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满)
·……

我觉得文本文件还有这些问题
磁盘文件读写速度相对内存较慢,不适合高速时的处理。
有USB,SSD,CD等介质上运行要求的程序来说不合适。
有时候用以太网来做数据交换也挺好的。 --------------------编程问答-------------------- 要在VB6中使用,这点儿 类型和变量的定义,干吗要做成 DLL 啊?

既然要编写源码,把它搞到一个标准模块中,不可以呀? --------------------编程问答-------------------- 对了,把dll偷偷存在VBA代码中,运行VBA代码时才载入进去,这样是不是可以啊。以前没试过,主要是不知道OFFICE会不会禁止这种方式。 --------------------编程问答-------------------- DLL插件与其它程序之间,数据传递、共享等
上述思路、方法是正确的。这在一些教科书和CSDN中都介绍过。只是过于简单
我不熟悉VB,所以请高手给出完整代码
再顶,也谢谢楼上各位 --------------------编程问答--------------------
引用 4 楼 bcrun 的回复:
对了,把dll偷偷存在VBA代码中,运行VBA代码时才载入进去,这样是不是可以啊。以前没试过,主要是不知道OFFICE会不会禁止这种方式。

这样不行吧,怎么叫做“把dll偷偷存在VBA代码中”?
VBA只有通过引用,才能运行DLL

倒是在CAD文件中,在原始模型的文件(excel)中可以插进一段sub endsub。然后每次变型CAD系统都会生成一个新excel文件,关键是这段”sub endsub“程序还带着。有点像类生成实例的意思。但不是DLL。CAD中具体是如何实现不清楚, --------------------编程问答-------------------- 请参考
关于vb自定义类型的使用
http://bbs.csdn.net/topics/220078005
注意12楼
“工程也要是公共的(ActiveX Exe、ActiveX Dll等)。
这样在类中声明的结构才可以编译到公共接口中”
这在代码中,怎么写啊? --------------------编程问答--------------------

'建立一个类 Class1 '生成相应的DLL ;工程1.dll
Public int1 As Integer
Public int2 As Integer
Public int3 As Integer
Public Str1 As String
Private mArr(3) As Byte


Public Property Get Arr(ByVal Index As Integer) As Byte
  Arr = mArr(Index)
End Property


Public Property Let Arr(ByVal Index As Integer, ByVal Value As Byte)
  mArr(Index) = Value
End Property



'在Excel中引用上面建立的DLL ;工程1.dll
Dim A1 As New Class1
Sub gfd()
A1.Arr(1) = 3
A1.int1 = 2
End Sub

Sub gdfd()
Debug.Print A1.Arr(1)
Debug.Print A1.int1
End Sub

--------------------编程问答--------------------
引用 8 楼 u010990791 的回复:

'建立一个类 Class1 '生成相应的DLL ;工程1.dll
Public int1 As Integer
Public int2 As Integer
Public int3 As Integer
Public Str1 As String
Private mArr(3) As Byte


Public Property Get Arr(ByVal Index As Integer) As Byte
  Arr = mArr(Index)
End Property


Public Property Let Arr(ByVal Index As Integer, ByVal Value As Byte)
  mArr(Index) = Value
End Property



'在Excel中引用上面建立的DLL ;工程1.dll
Dim A1 As New Class1
Sub gfd()
A1.Arr(1) = 3
A1.int1 = 2
End Sub

Sub gdfd()
Debug.Print A1.Arr(1)
Debug.Print A1.int1
End Sub



十分感谢,我去试一下
另外,excel在处理中作为主程序,而计算部分还有两个DLL。之所以专门用一个DLL处理公共数据,是因为这是一种标准地处理公共数据办法。公共数据大概有60个左右的数据(数据类型为两种,long 和 double),有12+3个数组(数组大小不定),这些数组用来画曲线。
不知这样的处理和认识对不对?
再次感谢!
再次感谢! --------------------编程问答-------------------- 在类模块中,不允许用public定义数组
那么,只有在运行中才能确定数组大小,这时该怎么办? --------------------编程问答--------------------
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,