收录日期:2019/10/22 15:03:33 时间:2016/05/22 20:04:23 标签:VB基础类
现象:在VB中调试时,可以执行,但是一但退出应用就连VB也跟着关闭,如果执行生成的EXE文件,老报“什么什么指令引用什么什么内存,内存不能为read什么什么”的错误。根本不能执行。


模块ServiceModule内容如下:
'线程安全属性数据结构;
Public Type SECURITY_ATTRIBUTES
   nLength As Long
   lpSecurityDescriptor As Long
   bInheritHandle As Long
End Type

'这个是用于多线程访问临界资源同步Api的数据结构
Public Type CRITICAL_SECTION
   Dummy As Long
End Type

Declare Function CreateThread Lib "kernel32" (ByVal lpSecurityAttributes _
   As Long, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, _
   ByVal lpParameter As Long, ByVal dwCreationFlags As Long, _
   lpThreadId As Long) As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Sub EnterCriticalSection Lib "kernel32" (lpCriticalSection As CRITICAL_SECTION)  '进入临界区
Public Declare Sub LeaveCriticalSection Lib "kernel32" (lpCriticalSection As CRITICAL_SECTION)  '离开临界区

Public FormHandle As Long
'临界数据结构
Public Sect As CRITICAL_SECTION

Sub SendMSG()
   'Dim dc As Long
   'dc = GetDC(formhandle)
   While True
      Call Console.Send(GetServer, GetUID, GetPWD, GetDataBase)
      Call Sleep(GetTimes)
   Wend
   'Call ReleaseDC(formhandle, dc)
   Call EnterCriticalSection(Sect)
   Call LeaveCriticalSection(Sect)
End Sub

Sub RecvMSG()
   'Dim dc As Long
   'dc = GetDC(formhandle)
   While True
      Call Console.Recieve(GetServer, GetUID, GetPWD, GetDataBase)
      Call Sleep(500)
   Wend
   'Call ReleaseDC(formhandle, dc)
   Call EnterCriticalSection(Sect)
   Call LeaveCriticalSection(Sect)
End Sub


form内容如下:
'加载窗体
Private Sub Form_Load()
   FormHandle = Console.hwnd
   InitSMGPAPI App.Path & "\config\smgpc.ini"
   'User是我自己写的ocx,组要是利用winsock监控远程服务器
   IsConnect = User.IsConnect(GetServer, GetPort)
   If IsConnect = False Then
      Unload Me
      Exit Sub
   End If
End Sub

Private Sub Start_Command_Click()
   Dim threadid1 As Long
   Dim threadid2 As Long
                
   hThread1 = CreateThread(0, 2000, AddressOf ServiceModule.SendMSG, 0, 0, threadid1)
   hThread2 = CreateThread(0, 2000, AddressOf ServiceModule.RecvMSG, 0, 0, threadid2)
End Sub

深圳的.NET程序员们,谈谈大家的薪水.. 菜鸟发问。问什么我装了sdk 1.4.2后,发现没有java.rmi.Remote包阿?大家绑忙阿。30分 今天开机遇到一个恐怖的事情,求助~~ 有什么好工具,能方便可视化,查询、增加、删除Oracle 数据、并能方便地生成Oracle 存储过程、函数、sql语句??? 请问热点(area)能不能使得图片的某一块变成灰色? 高手请进,怎么判断远程网络是否存在?高分想送。。。 总共200分:如何用adodataset更新关联表记录 反编译class,然后查看 关于搜索引擎设计问题? 请教一下关于数据源lookup(jndiName)的问题,急!!! 请Hibernate的高手进来看看 想在我的新闻发布系统中加入新闻搜索的功能,请问要怎么做?谢谢 org.apache.xpath包在那里能下的到? 哪位兄弟能贴点回合制战斗部分的代码,谢谢... 提个很简单的问题,谢谢! 上网通过IE设置的\"使用自动配置脚本\", 其他的网络访问如何设置呢? 各位朋友,大家好!我想问一下,如何做到用鼠标右键选择JTable的行。 Print方法 怎样写任意角度的文字? 第一次连接数据库很慢,你们也都这样吗? sql server中的二进制类型对应access中的哪个类型 服务器的问题 怎么安装 大连中讯高科谁了解 如何将DataList的分页显示代码写到类里去? JBuilder菜菜鸟提问,100分相送,各位大侠请留步~ 出现这样的error[Fatal Error] BaseFormUnit.pas(26): File not found: \'XPMenu.dcu\'如何解决 关于用LoadRunner7.8给一个web程序作压力测试的问题 求超星阅读器破解版 求C++BuilderX 的注册码??? windows XP中插入SVCHOST进程抓屏问题 两个SQL7。0之间通过什么方式可以相互时时备份数据?