如何获取dll或exe的模块名
直接上一段神奇的代码,用于获取模块句柄
#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的模块名相关推荐
- .CS文件编译生成.DLL文件 .EXE文件(C#网络搜集)(转)
如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs N:\NET\cs\*.cs 是你的cs文 ...
- dll与exe的区别
DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用. 所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分.换句话说,函数和过程的代码就 ...
- .CS文件编译生成.DLL文件 .EXE文件
如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs N:\NET\cs\*.cs 是你的cs文 ...
- VB传统DLL生成插件安装版 VB DLL LINK .exe
VB传统DLL生成插件安装版 VB DLL LINK .exe 用VB生成标准dll,让任何程序引用. ################################################ ...
- NETMerger - DotNet 组件(dll或exe)合并
原理:基于ILMerge,通过浏览-添加dll(或exe),自动合并组件. 用途:在ASP.NET项目打包时,大都用到WebDeployment,但其速度太慢,若aspx.cs中有重名class,反复 ...
- 如何获取本地安装的Python模块列表?
我想获得Python模块的列表,这些模块在我的Python安装(UNIX服务器)中. 如何获得计算机中安装的Python模块的列表? #1楼 使用pkgutil.iter_modules非常简单的搜索 ...
- allure报告---动态显示模块名和用例标题
一.allure报告动态参数化展示模块名和用例标题 使用@pytest.mark.parametrize 参数化完成数据驱动时,如果标题写死或者使用别名的方式 这样在报告中的可读性也不高 如何更美观的 ...
- C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL
ILMerge是一个将多个.NET程序集合并到一个程序集中的实用程序.它既可以作为 开源使用,也可以作为NuGet包使用. 如果您在使用它时遇到任何问题,请与我们联系.(mbarnett _at_ ...
- C#.Net 如何动态加载与卸载程序集(.dll或者.exe)0-------通过应用程序域AppDomain加载和卸载程序集...
本博客中以"C#.Net 如何动态加载与卸载程序集(.dll或者.exe)"开头的都是引用莫问奴归处 微软装配车的大门似乎只为货物装载敞开大门,却将卸载工人拒之门外.车门的钥匙只有 ...
最新文章
- TrackID识别音乐的应用不能用了
- 用 Winetricks 配置 WINE
- spring jdbc设计与实现
- LINUX内核之内存屏障
- 成为解决计算机问题的利器,高中数学教学借助计算机的“翅膀”腾飞
- make 命令_make考点总结(建议中、高考学生收藏)
- .net找List1和List2的差集
- C# 二进制替换第一弹 byte 数组替换
- 796. 子矩阵的和
- Spring IoC容器初始化过程分析
- 证件照换底,红白蓝底随机换(附:一寸二寸证件照制作)
- Web程序设计-客户端表单验证
- Java常见工具安装及环境配置
- HDU 5336(2015多校4)-XYZ and Drops(bfs)
- 数据中心安全域的设计和划分
- 核桃编程学员对话诺贝尔奖得主 用童心预见未来 探讨人工智能发展
- ros执行catkin_make显示 /opt/ros/noetic/share/catkin/cmake/safe_execute_process.cmake:11 (message):`错误
- lol国服服务器最新人口排名,2020lol大区人数排名,lol服务器人数
- matlab 插入标尺,Matlab如何设置自定义的画图标尺scale
- 微软赵立威:云计算技术是移动互联网开发核心
热门文章
- 自写网络验证,支持注册 充值 在线消息 自动更新
- 点击屏幕其他地方让edittext失去焦点 的实现
- java lifo 队列_java - 如何在LIFO模式下实现链接的阻塞队列 - SO中文参考 - www.soinside.com...
- 取消 android 内部收费,国产手机硬伤终于被揭开:若安卓系统下半年收费,该如何应对?...
- Spring Boot + Spring-Security实现前后端分离双重身份认证初学者指南(手机号密码JWT + 短信验证码)
- java生成指定范围的随机数(太屌了)
- 最大素因子c语言,附上2021欧洲杯赛程时间表 -官网
- 两年后,我仍然想念耳机端口
- 使用Docker部署Spring-Boot-项目,带劲!
- 苏嵌//张朋//2018.07.16