为什么我使用其他程序调用这个DLL就崩溃
BOOL BoolRegHotkey;
HWND W_Hwnd;
int ID_HTK;
int OldProc,ScrollProc;
extern "C" _declspec(dllexport) BOOL __stdcall RegHotKey(HWND Hwnd,int ID_HOTKEY,UINT Key)
{
OldProc = SetWindowLong(Hwnd,GWL_WNDPROC,ScrollProc);
if (RegisterHotKey(Hwnd,ID_HOTKEY,MOD_CONTROL|MOD_ALT,Key))
{
return true;
W_Hwnd = Hwnd;
BoolRegHotkey = true;
ID_HTK = ID_HOTKEY;
}
return false;
BoolRegHotkey = false;
}
extern "C" _declspec(dllexport) BOOL __stdcall UnHotKey(HWND Hwnd,int ID_HOTKEY)
{
if (UnregisterHotKey(Hwnd,ID_HOTKEY))
{
return true;
}
return false;
}
LRESULT WndProc(HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)
{
hwnd = W_Hwnd;
switch (BoolRegHotkey)
{
case WM_HOTKEY:if (BoolRegHotkey)
{
ShowWindow(hwnd,SW_HIDE);
}
else
{
ShowWindow(hwnd,SW_SHOW);
}
BoolRegHotkey = !BoolRegHotkey;
return 0;
break;
case WM_DESTROY:UnregisterHotKey(hwnd,ID_HTK);
PostQuitMessage(0);
return 0;
break;
}
return CallWindowProc((WNDPROC)OldProc,hwnd,message,wParam,lParam);
}
代码如上,我使用程序调用这个DLL的时候 程序直接崩溃,谁帮我修改下啊! 到底哪儿的问题
我想实现的功能是 热键注册,并且通过热键隐藏和显示窗口
HWND W_Hwnd;
int ID_HTK;
int OldProc,ScrollProc;
extern "C" _declspec(dllexport) BOOL __stdcall RegHotKey(HWND Hwnd,int ID_HOTKEY,UINT Key)
{
OldProc = SetWindowLong(Hwnd,GWL_WNDPROC,ScrollProc);
if (RegisterHotKey(Hwnd,ID_HOTKEY,MOD_CONTROL|MOD_ALT,Key))
{
return true;
W_Hwnd = Hwnd;
BoolRegHotkey = true;
ID_HTK = ID_HOTKEY;
}
return false;
BoolRegHotkey = false;
}
extern "C" _declspec(dllexport) BOOL __stdcall UnHotKey(HWND Hwnd,int ID_HOTKEY)
{
if (UnregisterHotKey(Hwnd,ID_HOTKEY))
{
return true;
}
return false;
}
LRESULT WndProc(HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)
{
hwnd = W_Hwnd;
switch (BoolRegHotkey)
{
case WM_HOTKEY:if (BoolRegHotkey)
{
ShowWindow(hwnd,SW_HIDE);
}
else
{
ShowWindow(hwnd,SW_SHOW);
}
BoolRegHotkey = !BoolRegHotkey;
return 0;
break;
case WM_DESTROY:UnregisterHotKey(hwnd,ID_HTK);
PostQuitMessage(0);
return 0;
break;
}
return CallWindowProc((WNDPROC)OldProc,hwnd,message,wParam,lParam);
}
代码如上,我使用程序调用这个DLL的时候 程序直接崩溃,谁帮我修改下啊! 到底哪儿的问题
我想实现的功能是 热键注册,并且通过热键隐藏和显示窗口
...全文
相关推荐
c#调用c++ dll 传参 string 崩溃的一种解决办法
当我们尝试在C#中调用这个函数时,可能会遇到崩溃的问题。#### C# PInvoke 声明在C#中,我们通常使用`DllImport`属性来声明对外部DLL的引用。
程序崩溃源码定位
在使用CrashFinder之前,如果崩溃的程序是动态链接库(DLL),则需要先获取DLL的基址。
VB调用dephi写的Dll测试
标题 "VB调用dephi写的Dll测试" 描述了一个编程问题,其中VB(Visual Basic)尝试调用由Delphi编译的动态链接库(DLL),但在执行时导致程序崩溃。
易语言编写的dll参数的传址调用
易语言编写的dll参数的传址调用1、dll内参数属性:参考勾选,调用时需要勾选传址,否则程序崩溃;且此时参数是传指针的调用。2、dll内参数属性:参考不勾选,调用时不管勾选不勾选,都可以运行;此时参数
打开、修改、调用和编辑dll文件的方法
程序员可以使用各种编程语言中的API函数或函数库来调用DLL文件中的函数。


进程/线程/DLL
