为什么我的mousehook内dll无法识别简单BOOL
Why is my mousehook inside dll unable to recognize simple BOOL?
#pragma data_seg(".shared") // ".shared" is defined in exports.def to allow
HWND m_hHwndMouse = 0;
HHOOK m_hHookMouse = 0;
BOOL hover = true;
#pragma data_seg()
这个部分是用.def file
管理的EXPORTS
SetValuesMouse
MouseProc
SECTIONS
.shared READ WRITE SHARED
我正在指导这个dll(添加值)+试图改变BOOL悬停= true;通过自动调用DLL
来改变这个值DllCall("。 simplemousehook.dll"、"int"、"SetValuesMouse","hwnd",主要美元,"hwnd hhMouse美元[0],"BOOL",0)
这只是使
HWND m_hHwndMouse = 0;
HHOOK m_hHookMouse = 0;
在SetValuesMouse函数中修改的共享部分
void WINAPI SetValuesMouse(HWND hWnd, HHOOK hk, BOOL ho)
{
m_hHwndMouse = hWnd;
m_hHookMouse = hk;
hover = ho;
}
好的,现在我的鼠标钩子在DLL中知道在哪里发送消息(m_HWNDMOuse)
LRESULT CALLBACK MouseProc( int nCode, WPARAM wParam, LPARAM lParam )
{
case WM_MOUSEMOVE:
wParm = AU3_WM_MOUSEMOVE;
PostMessage(m_hHwndMouse, wParm,(WPARAM)( (MOUSEHOOKSTRUCT*) lParam )->hwnd, LPARAM(fromp));
这工作得很好,我的gui(这是hHwndMouse)通常从dll接收消息,所以显然我可以通过setvaluesmouse函数来改变它
但是…
如果我这样做
if (hover = 1)
{
.. do something here
}
在此之前,我通过SetValuesMouse函数将BOOL悬停值更改为0,dll忽略悬停值为0并且"在这里做一些事情"…
为什么不能正确读取bool并忽略…在这里做点什么?
我知道我可能犯了一个完全愚蠢的错误,但我忍不住要寻求帮助。
您在if
条件中缺少一个=
,应该是if (hover == 1)
。
One = sign在C语言中意味着赋值,当你错误地执行if-check时,你实际上是在改变hover的值并意外触发事件。
==是c中的相等操作符。
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 提升 ASIO 无法识别计时器对象
- 从udp接收帧对于人脸识别来说太慢
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- 模板类无法识别友元运算符
- 如何在BST的这个简单递归实现中消除警告
- 一种在C++中读取TXT配置文件的简单方法
- std::visit无法识别类型
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 无法识别模板功能
- 需要帮助识别简单多线程代码中的错误
- 如何简单地使用无法识别的字符
- 为什么我的mousehook内dll无法识别简单BOOL