收录日期:2020/05/26 05:26:28 时间: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

初次给了 应聘 谁给一个thinking in Java电子版的下载地址??? 再见世界杯~有人说那是一个时代结束~ 山寨机程序员行情,清楚的大哥,大姐给说下? 如何用SQL server2000存储过程的方法根据本地IP 限制新闻列表的输出,如果本地ip不在某条新闻的IP允许范围内 那么新闻列表就不输出 Windows7与wince常用开发环境的兼容性问题 北京,asp.net三年工作经验,六千我有信心。。。 域控的dns服务器为什么需要srv? 怎么让JTextField不可编辑,但是底色仍然是白色? 一个关于MFC列表框中小问题 Visual C++ 2010可以在不安装其它版本VS情况下生成其它版本的DLL吗? div层被拖动时,如果鼠标过快会使得鼠标脱离div层,请问如何解决。详见代码 webjava问题 用wubi安装ubuntu于光盘安装的区别 想请教大家一些简单的问题!问题如下解决了就给分哦! 【求助】JACOB调用COM组件问题,急 急救 两个编译好的asp.net工程能不能合在一起发布? ASP.net与SQL2005网站上传到虚拟主机的疑惑??? 字符串指针的问题 关于同步传输的一些疑问 struts 如何实现在页面表格中动态添加行 向各位高手求解一个关于用indy中的tcp组建构建聊天程序的问题,急!急!急! vs2008中如何用代码来水晶报表多列的列宽和间距? 找一本C#书跟源代码,系统重装给删没了 struts 标签logic ADO里面怎么更新数据库 高手请进 新手问题 急急急~ 关于PeekMessage的问题 getHibernateTemplate()为null的处理办法