文章 2017-11-17 来自:开发者社区

[Windows编程] 通过GetModuleHandleEx 得到函数调用者所在的DLL/EXE 原创陈本峰2009-02

在有些情况下需要得到函数调用者的模块名字。比如你想限制你的某个函数只能被自己某个特定的DLL调用。 或者比如在异常处理中你想了解是那个DLL/EXE抛出了异常。 API函数_ReturnAddress 和GetModuleHandleEx 函数可以帮助我们达到这个目的。以下代码演示它们的用法:  view plaincopy to clipboardprint? void ShowCal...

文章 2017-11-15 来自:开发者社区

[Windows编程] 使用.local 重定向DLL 加载路径

在调试DLL或COM程序的时候, DLL文件可能会被其他程序占用,而无法被替换。 在WinXP,Vista 上, 可以通过创建.local 文件夹来重定向DLL 的加载路径 步骤(假设你的EXE为MyApp.exe, 要调试的DLL为 MyModule.dll): 1) 在 MyApp.exe 的目录下创建一个 MyApp.exe.local 2) 把你希望加载的 MyModule.dll 复制....

文章 2017-11-15 来自:开发者社区

[Windows编程] 监视DLL装载/卸载

Windows 驱动开发库里面提供了函数 LdrRegisterDllNotification , LdrUnregisterDllNotification , 可以让你监视进程装载/卸载DLL 的事件。 当你想在某个DLL被加载的时候Hook它的函数; 或者当你想在某个DLL推出之前做一些保存清理工作; 或者当你想阻止某个DLL 被加载(比如外挂) .... 这个机制正可以派上用场 。 以下是....

文章 2017-11-14 来自:开发者社区

[Windows编程] 通过GetModuleHandleEx 得到函数调用者所在的DLL/EXE

在有些情况下需要得到函数调用者的模块名字。比如你想限制你的某个函数只能被自己某个特定的DLL调用。 或者比如在异常处理中你想了解是那个DLL/EXE抛出了异常。 API函数_ReturnAddress 和GetModuleHandleEx 函数可以帮助我们达到这个目的。以下代码演示它们的用法:  view plaincopy to clipboardprint? void ShowCal...

文章 2017-11-14 来自:开发者社区

[Windows编程] 开发DLL必读《Best Practices for Creating DLLs》

开发DLL的时候,需要十分注意 DllMain 函数,因为在多线程环境下DLLMain里面的代码很容易引发线程死锁。 这篇MSDN文章《Best Practices for Creating DLLs》深入讨论了开发DLL的时候应该注意哪些事项, 非常推荐。 简单来说,系统在装载DLL 的时候会自动产生一个Loader Lock, 避免多个DLL同时被装载。 LoaderLock从API函数Lo....

文章 2015-01-25 来自:开发者社区

windows编程,加载dll库示例

第一种方式,手动找到函数地址,进行调用。 LoadLibrary(); GetProcAddress(); 生成dll库 #include<Windows.h> //导出函数,可以加载的时候调用 _declspec(dllexport) void msg() { MessageBoxA(0, "1", "2", 0); } //导出函数,可以加载的时候调用 _declsp...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注