获取执行文件所在目录:

static char* getRunningPath(const char* pExe, char* pBuffer, const UINT appPathSize)
{if (GetModuleFileNameA(GetSelfModuleHandle(), pBuffer, appPathSize) == 0){return NULL;}return pBuffer;
}

  如果要获取加载的dll目录呢?

//windows下获取当前dll的句柄
static HMODULE GetSelfModuleHandle()
{MEMORY_BASIC_INFORMATION mbi;return ((::VirtualQuery(GetSelfModuleHandle, &mbi, sizeof(mbi)) != 0) ? (HMODULE)mbi.AllocationBase : NULL);
}static char* getRunningPath(const char* pExe, char* pBuffer, const UINT appPathSize)
{if (GetModuleFileNameA((pExe != NULL && strlen(pExe) > 0) ? NULL : GetSelfModuleHandle(),pBuffer, appPathSize) == 0){return NULL;}return pBuffer;
}

  如果有执行文件,就获取执行文件的目录,否则获取so的目录。

WINDOWS下获得DLL所在目录的代码相关推荐

  1. windows下编写dll

    dll的优点 简单的说,dll有以下几个优点: 1) 节省内存.同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中.如果 ...

  2. windows下的.DLL文件

    DLL(Dynamic Link Library)文件为动态链接库文件,又称为"应用程序拓展",是软件文件类型.在windows中,许多应用程序并不是一个完整的可执行文件,它们被分 ...

  3. windows 调用linux .a lib,动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a)...

    动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a) 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀.例如:libhello.so libhello ...

  4. 在windows下使用MxNet用GPU跑代码时候出现MXNET_CUDNN_AUTOTUNE_DEFAULT to 0 to disable问题

    在windows下使用MxNet用GPU跑代码时候出现MXNET_CUDNN_AUTOTUNE_DEFAULT to 0 to disable问题 [14:58:40] c:\ci\libmxnet_ ...

  5. python在windows下操作word的方法的代码

    把写内容过程经常用的一些内容收藏起来,下边内容内容是关于python在windows下操作word的方法的内容,希望能对各位朋友有些好处. import win32com from win32com. ...

  6. Windows下动态加载可执行代码原理简述

    xiaotie同学比较蛋疼,问C#里面能不能动态加载SIMD的汇编代码.C#我不知道,反正c/c++下面这事情很好做.顺手花了几个小时写了个例子和这篇博客. 总的来说,windows下要动态加载bin ...

  7. windows下系统dll文件大全

    aclui.dll .....Security Descriptor Editor,没有它,注册表编缉器会无法运行 ACTIVEDS.DLL .....(ADs 路由层 DLL). 没有它, 打开事件 ...

  8. windows下如何down git上的代码

    1.Windows下生成.ssh文件,若已经生成,则找到该文件: 打开git 命令行:ls -al ~/.ssh    来查看是否有ssh key存在: 检查/.ssh目录来查看是否存在公开的ssh ...

  9. Windows下查看dll被哪个进程调用

    转载博客菜鸟leihttp://www.cnblogs.com/leipei2352/archive/2013/02/05/2892482.html 卸载程序,结果没卸载干净---程序的安装目录中还剩 ...

  10. windows下查看dll被哪个进程使用的方法

    卸载程序,结果没卸载干净---程序的安装目录中还剩下一个dll文件.想删,结果系统提示说dll文件被某个进程占用了,不让删. 先前碰到这种做法,我都是直接使用unlocker先unlock一下,然后删 ...

最新文章

  1. Android之ViewPager讲解
  2. 面向对象的多态性(2)
  3. UbuntuServer16.04LTS版怎样修改数据源为国内数据源
  4. PHP nl2br()格式化输出
  5. python怎么一直循环_python 基础之while无限循环
  6. mysql的count函数类型是什么意思_详细解读MySQL中COUNT函数的用法
  7. C++基础——类模板
  8. 广播模块加继电器怎么接线_时间继电器怎么看图接线?
  9. Machine Learning - 神经网络的表示和学习 (Week 4 - 5)
  10. 无法将 flash.display::BitmapData 转换为 flash.display.Bitmap
  11. linux设备驱动归纳总结(三):1.字符型设备之设备申请【转】
  12. 原则读书法:书这么多,读完就忘怎么办
  13. 机器视觉入门知识总结
  14. 报错error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio“
  15. 程序猿软件开发保护眼睛,win7设置窗口护眼模式?
  16. 【python】cannot import name ‘Imputer‘ from ‘sklearn.preprocessing‘ 解决办法
  17. 清华大学杨殿阁 深度解读《汽车数据安全管理若干规定(征求意见稿)》
  18. 计算机原理 中断,中断及中断系统-微计算机原理-电子发烧友网站
  19. 2022-2028年全球与中国插座行业市场深度调研及投资预测分析
  20. 愉快复习马克思主义与当代

热门文章

  1. php 百度天气,php使用百度天气接口示例
  2. cnn卷积神经网络_【CNN】一文带你了解卷积神经网络CNN的发展史
  3. python 车牌识别简单_如何用 Python 识别车牌
  4. yum安装mysql my.cnf_Linxu Yum方式安装Mysql
  5. Redis由分布式锁造成的重大事故
  6. vim介绍、vim颜色显示、vim一般模式操作
  7. SQL Server insert的触发器
  8. 【新手速成】菜鸟如何在三天内完成系统开发
  9. Jquery的普通事件和on的委托事件
  10. 公司mysql数据库设计与优化培训ppt