首页 > 解决方案 > GetModuleName 返回无关字符

问题描述

我在 DLL 中使用上述函数来获取其完整路径。该 DLL 是一个 ISAPI dll,位于"c:\inetpub\dlls". GetModuleName函数"\\?\c:inetpb\dlls\DLL.exe"返回。

我不明白为什么该函数会在开始时返回无关字符。这不是一个大问题,因为我可以简单地去掉前三个字符,当然,除非该函数在不同的服务器上并不总是返回这些相同的字符,在这种情况下就会出现问题。

谁能解释它为什么这样做以及它是否会在所有服务器上始终如一地这样做?

我搜索了谷歌,据我所知,没有任何与此相关的内容。

标签: delphi

解决方案


我假设您正在使用函数GetModuleFileName(这是搜索GetModuleName返回的内容)。

文档GetModuleFileName声明...返回的字符串将使用加载模块时指定的相同格式。因此,路径可以是长文件名也可以是短文件名,并且可以使用前缀“\?” .

我猜保存路径是始终检查前缀,除非您绝对确定返回的路径始终是前缀还是不取决于加载 DLL 的进程。


推荐阅读