windows下获取dll完整路径的方法

xiaoxiao2021-02-28  50

在封装dll的程序中,经常需要在dll程序中读取配置文件或者是保存中间结果,为了减少这些路径的由上层调用程序传入,我们经常会要求将配置文件跟dll放在一起即可,然后让程序自动获取到配置文件的位置:程序中在读取配置文件时的先获取自身dll所在的路径(*****.dll),然后根据该路径信息和配置文件的名称即可读取相应的配置文件。另外,中间结果保存路径,我们是只是想办法直接把中间结果保存在dll相同的路径下,不再需要用户再进行设置,我们在dll所在的路径下保存中间结果即可。

故我们需要能够获取dll的完整路径,然后根据该路径信息即可实现上述想法。

windows下获取dll的完整路径方法如下:

#include <windows.h> #include <string> //windows下获取当前dll的句柄 HMODULE GetSelfModuleHandle() { MEMORY_BASIC_INFORMATION mbi; return ((::VirtualQuery(GetSelfModuleHandle, &mbi, sizeof(mbi)) != 0) ? (HMODULE)mbi.AllocationBase : NULL); } //在程序中通过调用该函数即可获取到dll的完整路径至strDllFullPath中 void GetFullPathOfDll(std::string& strDllFullPath) { char szPath[MAX_PATH]; GetModuleFileNameA(GetSelfModuleHandle(),szPath,MAX_PATH); strDllFullPath = std::string(szPath); }

windows 使用MAX_PATH(260)来分配路径字符数

windows最长的文件夹长度为247个字节,最后11个字节留给文件名和扩展名使用。

转载请注明原文地址: https://www.6miu.com/read-2623262.html

最新回复(0)