delphi - GetModuleName 返回无关字符
问题描述
我在 DLL 中使用上述函数来获取其完整路径。该 DLL 是一个 ISAPI dll,位于"c:\inetpub\dlls"
. GetModuleName
函数"\\?\c:inetpb\dlls\DLL.exe"
返回。
我不明白为什么该函数会在开始时返回无关字符。这不是一个大问题,因为我可以简单地去掉前三个字符,当然,除非该函数在不同的服务器上并不总是返回这些相同的字符,在这种情况下就会出现问题。
谁能解释它为什么这样做以及它是否会在所有服务器上始终如一地这样做?
我搜索了谷歌,据我所知,没有任何与此相关的内容。
解决方案
我假设您正在使用函数GetModuleFileName(这是搜索GetModuleName
返回的内容)。
文档GetModuleFileName
声明...返回的字符串将使用加载模块时指定的相同格式。因此,路径可以是长文件名也可以是短文件名,并且可以使用前缀“\?” .
我猜保存路径是始终检查前缀,除非您绝对确定返回的路径始终是前缀还是不取决于加载 DLL 的进程。
推荐阅读
- linux - 发送 sctp 数据时 sctp_send() 失败
- jenkins-pipeline - Jenkins 扩展选择参数 groovy 脚本不起作用
- class - 如何静态引用类名?
- php - PHP 文档根目录
- javascript - 如何使用 jquery 在 asp.net webforms 中验证登录模式?
- convolution - DNA 序列上的 Keras Conv1D
- php - 用户 ''@'localhost' 拒绝访问数据库 'waqas' codeigniter
- ruby-on-rails - 表单中的多个选择,如何给每个选择一个唯一的名称?
- mysql - 通过比较浮点值过滤结果
- python - 我可以打开一个 jupyter 笔记本,但我无法在我的 Mac 上运行带有 python 脚本的笔记本