直接上一段神奇的代码,用于获取模块句柄

#if _MSC_VER >= 1300    // for VC 7.0
// from ATL 7.0 sources
#ifndef _delayimp_h
extern "C" IMAGE_DOS_HEADER __ImageBase;
#endif
#endifHMODULE GetCurrentModule()
{
#if _MSC_VER < 1300    // earlier than .NET compiler (VC 6.0)// Here's a trick that will get you the handle of the module// you're running in without any a-priori knowledge:// http://www.dotnet247.com/247reference/msgs/13/65259.aspxMEMORY_BASIC_INFORMATION mbi;static int dummy;VirtualQuery(&dummy, &mbi, sizeof(mbi));return reinterpret_cast<HMODULE>(mbi.AllocationBase);#else    // VC 7.0// from ATL 7.0 sourcesreturn reinterpret_cast<HMODULE>(&__ImageBase);
#endif
}

然后解析模块名

void ParseModuleName()
{TCHAR strFilePath[MAX_PATH];memset(strFilePath, 0, MAX_PATH);DWORD len = ::GetModuleFileName(GetCurrentModule(), strFilePath, MAX_PATH);m_strFullPathName = std::wstring(strFilePath);std::string::size_type iIndex = m_strFullPathName.find_last_of(L"\\");if (iIndex != std::string::npos){m_strFullPath = m_strFullPathName.substr(0, iIndex + 1);m_strDllNameExt = m_strFullPathName.substr(iIndex + 1, m_strFullPathName.length());m_strDllName = m_strDllNameExt.substr(0, m_strDllNameExt.length() - 4);}
}

如何获取dll或exe的模块名相关推荐

  1. .CS文件编译生成.DLL文件 .EXE文件(C#网络搜集)(转)

    如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs   N:\NET\cs\*.cs  是你的cs文 ...

  2. dll与exe的区别

    DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用. 所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分.换句话说,函数和过程的代码就 ...

  3. .CS文件编译生成.DLL文件 .EXE文件

    如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs   N:\NET\cs\*.cs  是你的cs文 ...

  4. VB传统DLL生成插件安装版 VB DLL LINK .exe

    VB传统DLL生成插件安装版 VB DLL LINK .exe 用VB生成标准dll,让任何程序引用. ################################################ ...

  5. NETMerger - DotNet 组件(dll或exe)合并

    原理:基于ILMerge,通过浏览-添加dll(或exe),自动合并组件. 用途:在ASP.NET项目打包时,大都用到WebDeployment,但其速度太慢,若aspx.cs中有重名class,反复 ...

  6. 如何获取本地安装的Python模块列表?

    我想获得Python模块的列表,这些模块在我的Python安装(UNIX服务器)中. 如何获得计算机中安装的Python模块的列表? #1楼 使用pkgutil.iter_modules非常简单的搜索 ...

  7. allure报告---动态显示模块名和用例标题

    一.allure报告动态参数化展示模块名和用例标题 使用@pytest.mark.parametrize 参数化完成数据驱动时,如果标题写死或者使用别名的方式 这样在报告中的可读性也不高 如何更美观的 ...

  8. C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL

    ILMerge是一个将多个.NET程序集合并到一个程序集中的实用程序.它既可以作为  开源使用,也可以作为NuGet包使用. 如果您在使用它时遇到任何问题,请与我们联系.(mbarnett _at_ ...

  9. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)0-------通过应用程序域AppDomain加载和卸载程序集...

    本博客中以"C#.Net 如何动态加载与卸载程序集(.dll或者.exe)"开头的都是引用莫问奴归处 微软装配车的大门似乎只为货物装载敞开大门,却将卸载工人拒之门外.车门的钥匙只有 ...

最新文章

  1. TrackID识别音乐的应用不能用了
  2. 用 Winetricks 配置 WINE
  3. spring jdbc设计与实现
  4. LINUX内核之内存屏障
  5. 成为解决计算机问题的利器,高中数学教学借助计算机的“翅膀”腾飞
  6. make 命令_make考点总结(建议中、高考学生收藏)
  7. .net找List1和List2的差集
  8. C# 二进制替换第一弹 byte 数组替换
  9. 796. 子矩阵的和
  10. Spring IoC容器初始化过程分析
  11. 证件照换底,红白蓝底随机换(附:一寸二寸证件照制作)
  12. Web程序设计-客户端表单验证
  13. Java常见工具安装及环境配置
  14. HDU 5336(2015多校4)-XYZ and Drops(bfs)
  15. 数据中心安全域的设计和划分
  16. 核桃编程学员对话诺贝尔奖得主 用童心预见未来 探讨人工智能发展
  17. ros执行catkin_make显示 /opt/ros/noetic/share/catkin/cmake/safe_execute_process.cmake:11 (message):`错误
  18. lol国服服务器最新人口排名,2020lol大区人数排名,lol服务器人数
  19. matlab 插入标尺,Matlab如何设置自定义的画图标尺scale
  20. 微软赵立威:云计算技术是移动互联网开发核心

热门文章

  1. 自写网络验证,支持注册 充值 在线消息 自动更新
  2. 点击屏幕其他地方让edittext失去焦点 的实现
  3. java lifo 队列_java - 如何在LIFO模式下实现链接的阻塞队列 - SO中文参考 - www.soinside.com...
  4. 取消 android 内部收费,国产手机硬伤终于被揭开:若安卓系统下半年收费,该如何应对?...
  5. Spring Boot + Spring-Security实现前后端分离双重身份认证初学者指南(手机号密码JWT + 短信验证码)
  6. java生成指定范围的随机数(太屌了)
  7. 最大素因子c语言,附上2021欧洲杯赛程时间表 -官网
  8. 两年后,我仍然想念耳机端口
  9. 使用Docker部署Spring-Boot-项目,带劲!
  10. 苏嵌//张朋//2018.07.16