2 qq4976966 qq4976966 于 2013.06.28 13:50 提问

关于一个C++动态库转换成C#接口后,消息接收的问题!急急急!

#ifndef USBDLL_H
#define USBDLL_H

#ifdef USBDLL_EXPORTS
#define USBDLL_API __declspec(dllexport)
#else
#define USBDLL_API __declspec(dllimport)
#endif

#include
#include

#define RECORD_LOCAL 0
#define RECORD_TALK 1
#define RECORD_LY 2
// the following functions' definition and macros' definition are the APIs for USB protocol

//----from Phone to PC--------------------------

/*
//设备连接时发此消息(指USB线与PC和终端电话都连接好).
//参数wParam:(BYTE)序号; lParam: 0L.
/
#define WM_DEVICECONNECT WM_USER+701
/

//设备断开时发此消息(指USB线与PC或终端电话的任一方断开时发此消息).
//参数wParam:(BYTE)0L--全部断开; lParam: 0L.
// 1L--断开一台话机; lParam: (BYTE)序号
*/

#define WM_DEVICEDISCONNECT WM_USER+702

/*
//呼叫建立,即摘机时发送此消息.
//参数wParam:(BYTE)序号; lParam: 0L.
/
#define WM_OFFHOOK WM_USER+703

/

//呼叫断开,即挂机时发送此消息.
//参数wParam:(BYTE)序号; lParam: 0L--挂机,1L--终端在保留的状态下按免提键退出了保留.
/
#define WM_ONHOOK WM_USER+704

/

//来电时发送来电号码.
//参数wParam:(BYTE)序号; lParam:char*.
//普通的号码长度>1;如果长度是1,号码是2,那代表“出局”,号码是1,那代表“保密”。
/
#define WM_CALLERID WM_USER+705

/

//来电响铃发此消息.
//参数wParam:(BYTE)序号; lParam: (BYTE)0x01—表示一次铃声响;0x00—表示此次铃声结束
/
#define WM_RING WM_USER+706

/

//通话过程中,收到本端DTMF键值时,发此消息.
//参数wParam: (BYTE)序号; lParam: char.
/
#define WM_KEY WM_USER+707
/

//留言过程中,话机接听电话,停止留言,发此消息.
//参数wParam: (BYTE)序号; lParam: 0L.
/
#define WM_STOPLY WM_USER+708
/

//通话过程中,收到话机按“静音”键
//参数wParam: (BYTE)序号; lParam: (BYTE)0x01--静音开启;0x00--静音关闭.
*/
#define WM_MUTE WM_USER+709

extern "C" {
//---------from PC to Phone-------------------------
// 若无说明,则返回 0 代表成功
USBDLL_API int _stdcall InitDll(); //初始化,仅调用一次

USBDLL_API int _stdcall BindWindow(HWND hwnd); //绑定窗口,所有事件发送到此窗口,初始化时调用;系统接收消息 WM_DEVICECHANGE 后调用此函数

USBDLL_API int _stdcall UnBindWindow(); //解除窗口绑定, 则所有事件将不会发送到此窗口,窗口销毁时调用此函数

#endif

主要代码是这样 让后 我使用windows 消息机制,将之绑定到当前窗体后,可以主动的对硬件操作,但是消息机制获得不到这些自定义的消息,请问有什么可解决的方式,是我什么地方出现问题了!

1个回答

wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.18 02:18
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!