- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 visual studio 中有一个解决方案文件,其中有两个项目,一个用于 .dll 文件,另一个项目用于 .c 文件:
这是 .h 文件:
#include <windows.h>
#ifndef BHANNAN_TEST_CLASS_H_
#define BHANNAN_TEST_CLASS_H_
extern int __declspec (dllexport) Factorial(int n);
#endif
在 .c 文件(dll 的)中:
#include "hanan.h"
#include <stdio.h>
int Factorial(int n) {
printf("in DLL %d \n" ,n);
return 0;
}
现在我有一个加载器/测试器,我尝试从它加载 dll 以 Hook 记事本中的击键,只是为了了解 Hook 的机制。
这是加载器的代码:
#include <windows.h>
#include <stdio.h>
typedef int (*functor) (int);
functor funcptr =NULL;
int main () {
HWND windowHandle;
HINSTANCE hMod;
HOOKPROC lpfn;
DWORD threadId;
HHOOK hook;
HMODULE myDLL = LoadLibraryW(L"dll123.dll");
funcptr = (functor) GetProcAddress(myDLL,"Factorial");
/// printing issues:////////////////
printf("%d \n\r" , myDLL);
printf("%d" , funcptr(33));
//////////////////////////////////////
lpfn = (HOOKPROC) funcptr;
hMod = myDLL;
windowHandle = FindWindow(L"Notepad",NULL);
threadId = GetWindowThreadProcessId(windowHandle, NULL);
hook = SetWindowsHookEx(WH_KEYBOARD,lpfn,hMod,threadId);//(WH_CBT, HookCBTProc, hInst, threadId);
/// printing issues:
printf("%d %d %d %d\n" , hook, WH_KEYBOARD , lpfn , hMod);
printf("%d %d \n",threadId , windowHandle );
getchar();
return 0;
}
我得到的所有打印都没有零,这意味着没有空值(假设记事本正在运行),但是当我在记事本中进行任何击键时,我立即得到一个异常,
使用 visual studio 2010 和 windows 7
添加异常属性:
Exception Offset: 0006632c
Exception Code: c0000409
Exception Data: 00000000
最佳答案
只是瞎猜,但是传递给 set hook 调用的函数应该如下所示:
LRESULT CALLBACK KeyboardProc(
__in int code,
__in WPARAM wParam,
__in LPARAM lParam
);
不是:int Factorial(int n)
(另外两个参数在哪里??)
关于c - 为什么在记事本中进行击键时出现异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592060/
menu Home Events Technical Schedule
我试图阻止触发默认 anchor 链接和 onclick 事件。 这是 HTML 代码: Google 我正在尝试使用以下 jQuery 代码阻止任何重定向的发生: $("#mylink").cli
我想在单击父 div 上的任意位置时切换我的 div,除非单击 anchor 元素。因此,例如,如果我单击示例中的第一个文本,我希望它切换,但在我的示例中的第二个文本上,我不希望它切换。 JSFidd
我在通过 jQuery 伪造 anchor 点击时遇到问题:为什么我的thickbox在我第一次点击输入按钮时出现,但第二次或第三次却没有出现? 这是我的代码: Link 当我直接点击链接时,它总是
我已经从 Mootools 切换到 jQuery,因为我认为它有更好的支持。我有这样的 HTML: Opcje Opcje Opcje Opcje Opcje Opcje Opcje JS
我是一名优秀的程序员,十分优秀!