DLL_PROCESS_ATTACH无法在Windows 7 C上执行
发布时间:2020-12-13 20:39:59 所属栏目:Windows 来源:网络整理
导读:我正在尝试加载.dll文件,并在加载时显示一个消息框.根据我的理解,一旦加载.dll,它就会调用dllmain()并切换到DLL_PROCESS_ATTACH选项.我已经编写了.dll和.exe的代码来加载它. .exe可以正确加载它并打印出加载了DLL的地址,但是我没有看到正在显示的消息框.我在
我正在尝试加载.dll文件,并在加载时显示一个消息框.根据我的理解,一旦加载.dll,它就会调用dllmain()并切换到DLL_PROCESS_ATTACH选项.我已经编写了.dll和.exe的代码来加载它. .exe可以正确加载它并打印出加载了DLL的地址,但是我没有看到正在显示的消息框.我在Microsoft.com上的某处读到,dll在加载时进入“锁定”,以防止出于安全目的而执行某些功能或代码.此功能是否阻止显示消息框?是否存在诸如提升权限,系统等的工作……?我不确定DEP是否有任何影响,我将其设置为仅保护关键的Windows进程.
调用过程: #include <iostream> #include <windows.h> int main() { HMODULE hDll = LoadLibraryA("dll.dll"); if (hDll == NULL) std::cerr << "Unable to load dll"; else std::cout << "Dll loaded @ " << hDll; FreeLibrary(hDll); } dll文件: #include <windows.h> BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: MessageBox(NULL,"Dll has been loaded.","Loaded",MB_OK); break; } return TRUE; } 我认为如果我有办法通过调试器运行.dll并查看MessageBox()返回的内容,这可能对我有所帮助,但我不知道该怎么做.谢谢!
Raymond Chen在他的博客文章
Some reasons not to do anything scary in your DllMain中有话要说:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- microsoft-metro – 地铁式应用中的RSA加密
- win10 uwp 使用 msbuild 命令行编译 UWP 程序
- 如何将uint32_t转换为struct in_addr?
- active-directory – 如何在各个Windows 7计算机上管理数百
- windows-7 – 没有上下文菜单命令的TortoiseHg
- windows-8 – Windows 8 – 启用远程访问选项已关闭
- Windows – 如何使用Delphi从文件扩展名获取图标和描述?
- windows-xp – 如何隐藏任务栏条目但保留窗口形式?
- 安装程序 – InstallShield电池电量警告
- windows-server-2008 – 我用什么来保存服务器文档?
推荐文章
站长推荐
- Windows – Powershell失败了竹子任务,因为-Exec
- 在Windows cmd中,如何在不引用完整路径的情况下在
- windows-server-2008-r2 – 在server 2008 r2中打
- windows-phone-8.1 – 从商店安装我自己的应用程
- windows-server-2008 – 如何监控Dell服务器上的
- Homestead - laravel开发环境搭建(windows)
- windows – 作为HA故障转移群集存储池的内部存储
- 什么GUI工具包最适合Windows和Linux中的本地LAF
- Windows Azure中的密钥管理
- windows – 系统如何处理“锁定”文件(即WinXP)?
热点阅读