jorgenhojmann 发表于 2003-12-8 19:52:12

【求助】全局变量

在VB中,应该如何定义全局变量呢?
在窗体模块中用PUBLIC呢,还是在标准模块中用PUBLIC呢?
如果,我编的程序,在运行过程中,进程导致死机,出现CPU使用率为100%的状况,应该对程序做怎么样的修改呢,因为我使用了大量的2维数组。不知道应该怎么做,是不是应该设一个缓冲呢,那么应该怎么设呢?
请大虾帮忙,急!!!

sunrain_xyl 发表于 2003-12-9 08:26:07

回复: 【求助】全局变量

vb中的全局变量可以在模块中定义,应该是你所说的窗体模块中,<工程>中得〈模块〉选项。
二维数组应尽量少用,若必须,最好将其定义成动态数组,用完后及时释放。

qingfengwuhen 发表于 2003-12-11 17:41:27

回复: 【求助】全局变量

数组定义时,不赞成随意定义大小,用此方法来存放自己认为很多个数据是不合理的。象sunrain_xyl先生所说的很有道理。

jorgenhojmann 发表于 2003-12-12 20:06:28

回复: 【求助】全局变量

但是,有一个问题,就是这些2维的数组,必须从建立开始,直到程序退出后,才可以释放掉的,因为整个程序中的关键部分,就是对这些数组进行插值计算,得到计算结果,不知道有没有什么好一点办法,可以节省CPU的使用(如果不得不大量使用2维数组的话)。
每一次插值计算之后,还需要进行大量的计算处理工作,不知道,大家对此有什么意见

mwd121 发表于 2003-12-12 20:13:36

回复: 【求助】全局变量

你编过Win32程序吗?我记得好像其中有个内核函数是用于申请内存的(在虚址空间中,到具体使用的才真正的分配内存,好像Excel等程序都是用该函数先申请内存的,明天我查了告诉你,你也可自己去查微软出的高级Windows编程,现在是第四版,作者是记不得了)

mwd121 发表于 2003-12-13 07:59:10

回复: 【求助】全局变量

Public Declare Function VirtualAlloc Lib "kernel32" Alias "VirtualAlloc" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
先保留区域,第三个参数为MEM_RESERVE(具体值可能要查一下),在使用前需要提交,提交时第三个参数为MEM_COMMIT(可分配大的区域而提交小的区域,可多次提交)。当然也可同时保留和提交,此时只要将MEM_RESERVE与MEM_COMMIT或一下就可以了。保留时第一个参数可为NULL(当然也可是具体的地址值,但如果该地址已经分派,就会产生错误。
释放时使用:Public Declare Function VirtualFree Lib "kernel32" Alias "VirtualFree" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
其中dwSize在释放时必须为0,即所有区域必须一次释放。dwFreeType 为MEM_RELEASE。

jorgenhojmann 发表于 2003-12-13 19:50:04

回复: 【求助】全局变量

楼上的,讲得很好,可惜听不懂
本人不是专业搞编程的,只是在业余时间编几个小的专业上用的程序来减少一写工作量,能不能讲得比较容易听懂的,
此外,我用的是VB6.0,有没有什么现成的源程序啊?
页: [1]
查看完整版本: 【求助】全局变量