获取当前运行程序所在路径(exe/dll)

31 篇文章 7 订阅

GetModuleFileName() 函数返回当前进程已加载可执行或DLL文件的完整路径名(以’\0’终止),该模块必须由当前进程地址空间加载。若要获取另一个已加载模块的文件路径,可以使用GetModuleFileNameEx()函数。

DWORD WINAPI GetModuleFileName(
  _In_opt_  HMODULE hModule,   //应用程序或DLL实例句柄,NULL则为获取当前程序可执行文件路径名
  _Out_     LPTSTR lpFilename, //接收路径的字符串缓冲区
  _In_      DWORD nSize        //接收路径的字符缓冲区的大小
);

注意:   
 MAX_PATH宏为编译器所支持的最长全路径名的长度,VC++6.0下为260。
    '\\'即为'\'。

例:

void CTestIMC3MoveDlg::GetAppFilePath(CString& strPath)
{
	GetModuleFileName(NULL, strPath.GetBufferSetLength(MAX_PATH+1), MAX_PATH);
	strPath.ReleaseBuffer();
	int nPos = strPath.ReverseFind('\\');
	strPath = strPath.Left(nPos);
}
调用:
	CString sPath;
	GetAppFilePath(sPath);
	CString strDllName = sPath + _T("\\ImcMoveCard4.dll");

另外:
MFC中CFile类的成员函数:CFile::GetFilePath(); //获取指定文件所在的目录
HMODULE GetModuleHandle(LPCTSTR lpModuleName)返回加载到当前进程地址空间的可执行文件或DLL文件的句柄,若参数为NULL,则返回当前进程的句柄(当前应用程序实例句柄)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 当出现无法定位程序输入点nw.dll的错误时,这通常是因为系统无法找到或加载所需的nw.dll文件。根据引用\[1\]中的描述,你可以尝试使用GetLastError()函数来获取更多关于加载dll文件失败的错误信息。另外,根据引用\[3\]中的说明,可执行文件在运行时会按照一定的路径搜索顺序来查找和调用dll文件。你可以检查以下几个位置来确保nw.dll文件存在并可被找到:可执行文件所在目录、进程当前目录、系统目录、Windows目录以及环境变量PATH中的目录。如果nw.dll文件确实存在于这些位置之一,但仍然无法定位程序输入点,那可能是由于版本不兼容或其他问题导致的。 #### 引用[.reference_title] - *1* [DLL 找不到指定的程序 过程分析](https://blog.csdn.net/weixin_34006965/article/details/89823972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [node 多版本管理 nvm-window(适用win7 win10)](https://blog.csdn.net/xuelang532777032/article/details/128301982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【QGIS】无法定位程序输入点~于动态链接库~上](https://blog.csdn.net/sunriver2000/article/details/116712179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随心漂流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值