关于接收串口消息的简单问题!!的急。。不会都也顶一下(100分)

  • 主题发起人 主题发起人 jjsoul
  • 开始时间 开始时间
J

jjsoul

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个小型工控,由于需从串口接收键盘输过来的数据,想通过系统消息机机制进行处理。。。现动态库厂家已提供,可我看半天没明白怎么使用。望会的各位大大帮我解决。谢谢。

下面是厂家给我的一个KEY.h文件。。贴出来大家帮看看
// 函数名: InitKeybard
// 功能: 初始化键盘端口
// 参数: strComm 串口端口号,如:COM1
// hWnd 接收键盘消息的窗体句柄
// uMsg 指定键盘消息
// 返回值: 成功返回TRUE, 失败返回FALSE
KEY_API BOOL InitKeybard(LPCSTR strComm, HWND hWnd, UINT uMsg);


// 函数名: CloseKeybard
// 功能: 关闭键盘端口
// 参数: 无
// 返回值: 成功返回TRUE, 失败返回FALSE
KEY_API BOOL CloseKeybard();




// 如何使用该动态库呢?
// 1.先调用InitKeybard初始化.
// 如:InitKeybard("COM1", hMyWnd, uMyKeybardMsg);
// 2.处理uMyKeybardMsg消息.
/*
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if ( (uMsg == uMyKeybardMsg) && (hwnd == hMyWnd) )
{
UINT nKeybardNo = (UINT)wParam; // 键盘编号
LPCSTR strKeys = (LPCSTR)lParam; // 按键内容(字符串)
// 内容类似于"+123","-321"
// ...

}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
*/

// 3.调用CloseKeybard关闭键盘.处理结束[:(!]
 
.dll,.h都给你了啊

这样用静态调用的方式就很简单了
project-->add to project,把动态连接库的.lib文件联进去,
代码中include "key.h"
然后你就可以直接
InitKeybard("COM1", hMyWnd, uMyKeybardMsg);
这样使用了
 
我知道啊!!可是不知在什么环节处理这个消息?????
我用的是DELPHI,不是C[:(]
 
什么环节处理处理你不清楚?
InitKeybard("COM1", hMyWnd, uMyKeybardMsg);是应该在你打开这个串口时做的
WindowProc是一个线程,他是一直在处理的,代码中创建这个线程
你用的是Delphi的话在代码中要把函数申明修改一下,怎么改我一时也不清楚
呵呵,所以我还是采用C++builder做了,方便的很了:)

 
哦,有会改的人吗???谢谢来如风。。我要取键盘数据当然要在windowProc里加代码了。。是不是进已要定义一个这个名字的线程?
 
自定义一个消息事件 uMyKeybardMsg = WM_USER + $100
procedure KeybardMsg(var message: TMessage); message uMyKeybardMsg;
procedure TFrmMain.KeybardMsg(var message: TMessage);
begin
UINT nKeybardNo = (UINT)wParam; // 键盘编号
LPCSTR strKeys = (LPCSTR)lParam; // 按键内容(字符串)
// 内容类似于"+123","-321"
// ...

end;
 
TO:yanghai0437
提示说无法定位程序输入点initkeybord于动态链接库key.dll上
 
厂家没提供 Demo 吗?

 
没有啊??
 

Similar threads

I
回复
0
查看
623
import
I
I
回复
0
查看
571
import
I
I
回复
0
查看
759
import
I
后退
顶部