首页
社区
课程
招聘
[旧帖] dll动态加载问题 求帮助 0.00雪花
发表于: 2011-10-1 00:38 4498

[旧帖] dll动态加载问题 求帮助 0.00雪花

2011-10-1 00:38
4498
loadlibrary动态加载一个dll。自己写的dll如下
;.CPP文件

#include <Windows.h>

HHOOK g_hmouse=NULL;
HHOOK g_hkeyboard=NULL;
HWND g_hwnd=NULL;
HANDLE g_handle=NULL;
int _stdcall add(int a,int b)
{
        return a+b;
}

LRESULT CALLBACK mouseproc(          int nCode,
                                                   WPARAM wParam,
                                                   LPARAM lParam
                                                   )
{
        return 1;
}
LRESULT CALLBACK keyboardproc(          int nCode,
                                                          WPARAM wParam,
                                                          LPARAM lParam
                                                   )
{
        if (VK_F2==wParam)
        {
                SendMessage(g_hwnd,WM_CLOSE,0,0);
                UnhookWindowsHookEx(g_hmouse);
                UnhookWindowsHookEx(g_hkeyboard);
        }
        return 1;
}
void _stdcall sethook()
{
        //g_hwnd=hwnd;
        g_hmouse=SetWindowsHookEx(WH_MOUSE,mouseproc,(HINSTANCE)g_handle,0);
        g_hkeyboard=SetWindowsHookEx(WH_KEYBOARD,keyboardproc,GetModuleHandle((LPCWSTR)("HOOK")),0);
}
:.def文件如下
LIBRARY        "HOOK"
EXPORTS
sethook @2
add @1
加载这个生成DLL文件的时候返回是NULL 也就是失败
于是我去酷狗的文件夹里面找了个dll文件 进行加载 是成功的  是我自己写的dll有问题吗 问题出在哪呢   希望有人能够指点下 谢谢

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 31
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你贴出的是所有代码么?是不没写入口函数啊?
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID vReserved)
{
        switch(fdwReason)
        {
        case DLL_PROCESS_ATTACH:
                 hInst=hinstDLL;
                 break;

        case DLL_THREAD_ATTACH:break;
        case DiLL_THREAD_DETACH:break;
        case DLL_PROCESS_DETACH:
                RemoveKbHook();
                break;
        default: break;
        }
    return TRUE;
}
2011-10-3 06:40
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
3
主函数没得啊
2011-10-3 07:23
0
雪    币: 25
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我用的是VS2008 不是说主函数是自动会生成的吗
2011-10-4 22:46
0
雪    币: 25
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我用的是VS2008 不是说主函数是自动会生成的吗
2011-10-4 22:47
0
雪    币: 31
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
恩会自动生成,你再检查下。别的地方。
LoadLibrary(_T("MyDLL.dll"));//注意此处必须有_T()函数
还有DLL要放在调用它的EXE文件放在同个文件夹下。
你试试看行么?
2011-10-5 01:33
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
很有可能是路径问题。
先用getlasterror 看哈返回错误。
再用绝对路径试下。
2011-10-6 11:16
0
雪    币: 139
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
LZ 按照楼上的达人们的建议了来找找原因吧。
2011-10-6 15:16
0
游客
登录 | 注册 方可回帖
返回
//