本帖最后由 苍茫 于 2015-9-9 23:22 编辑
用VC 写个多线程的DLL 给VB6调用,稳稳当当。
//thread.dll
#include<windows.h>
DWORD WINAPI ThreadProc(LPVOID p)
{
long* pTemp = (long*)p;
*pTemp = 100;
return 0;
}
HANDLE WINAPI CreateMyThread(LPVOID lpParameter,LPDWORD lpThreadId)
{
HANDLE hThread=CreateThread(NULL,0,ThreadProc,lpParameter,0,lpThreadId);
WaitForSingleObject(hThread,INFINITE);
return hThread;
}
' in vb6 std module
Option Explicit
Public g_value As Long
Private Declare Function ThreadProc Lib "D:\新建文件夹\thread.dll" (lParam As Long) As Long
Private Declare Function CreateMyThread Lib "D:\新建文件夹\thread.dll" (p As Long, id As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Sub main()
g_value = 999
Dim hThread As Long, id As Long, s As String
s = "g_value = " & g_value & vbCrLf
hThread = CreateMyThread(g_value, id)
CloseHandle hThread
s = s & "now,g_value = " & g_value
MsgBox s
End Sub
// display:
|