从手头C写的DLL里调用如下函数:
Byte BCP_Register(DWORD ThreadID, //向BCP注册的应用程序线程ID
LONGWORD MSG, //应用程序线程接收BCP数据或事件的消息
SecurityMode_T SecurityMode //安全模式的类型
),
现通过CreateThread方法创建了一个线程,
dwThread : DWORD;
CreateThread(nil, 0, @TForm1.ProcessBTMsg, nil, 0, dwThreadID);
我的想法是把该线程的ID注册给BCP,但不知道BCP_Register里第一个参数怎么定义?
还有,如果我在线程程序段中用GetMessage(MyMsg, 0, 0, 0)接收消息的话,该如何实现?
注:
(1)type SecurityMode_T = (MOD1, MOD2, MOD3, MOD4);
(2)DLL里其他的一些函数是在调用后返回消息驱动硬件的。不知道我上面是否说清楚了,望高手不吝赐教。
Byte BCP_Register(DWORD ThreadID, //向BCP注册的应用程序线程ID
LONGWORD MSG, //应用程序线程接收BCP数据或事件的消息
SecurityMode_T SecurityMode //安全模式的类型
),
现通过CreateThread方法创建了一个线程,
dwThread : DWORD;
CreateThread(nil, 0, @TForm1.ProcessBTMsg, nil, 0, dwThreadID);
我的想法是把该线程的ID注册给BCP,但不知道BCP_Register里第一个参数怎么定义?
还有,如果我在线程程序段中用GetMessage(MyMsg, 0, 0, 0)接收消息的话,该如何实现?
注:
(1)type SecurityMode_T = (MOD1, MOD2, MOD3, MOD4);
(2)DLL里其他的一些函数是在调用后返回消息驱动硬件的。不知道我上面是否说清楚了,望高手不吝赐教。
DWORD dwThreadID; //定义应用程序线程ID
MSGThread=CreateThread((LPSECURITY_ATTRIBUTES) NULL, 0,
(LPTHREAD_START_ROUTINE)ProcessBTMsg, NULL,
0, &dwThreadID);//创建应用程序线程
WM_BCP_MSG = RegisterWindowMessage(_TEXT(”WM_BCP_MSG”));
//注册窗口消息
ucCmpID = BCP_Register( dwThreadID, WM_BCP_MSG, MOD4);
参考
http://blog.csdn.net/sdlcgxcqx/archive/2009/02/25/3935310.aspx