问题标签 [getmodulefilename]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
59399 浏览

c++ - 如何正确使用 GetModuleFileName?

以下代码:

应该显示程序执行的完整路径。但在 VS 2012 中,我得到了错误:

使用了未初始化的局部变量“缓冲区”

代码有什么问题?

0 投票
0 回答
862 浏览

windows - 来自 64 位应用程序的 32 位应用程序的 GetModuleFileNameExA 在 Win7 与 Win Server 2012 上的行为不同?

有点复杂的问题,我无法在标题中正确总结。

我有一个 64 位进程 (Foo64),它创建一个 32 位子进程 (Bar32),然后尝试获取 Bar32 的 kernel32.dll 版本的完整路径。显然我希望 Bar32 从 C:\Windows\SysWow64\kernel32.dll 加载它

在 Windows 7 上,我从 Foo64 调用 GetModuleFileNameExA(),并正确获取“C:\Windows\SysWow64\Kernel32.dll”。

在 Windows Server 2012 上,完全相同的代码返回“c:\Windows\system32\kernel32.dll”,这是 64 位 dll 位置。Bar32 显然不可能加载 64 位 dll。

我的预感是 Server 2012 告诉我 Bar32 尝试加载它的位置,而不是实际重定向的位置。我怎样才能让它告诉我真实的位置?

我有什么基本的误解吗?

我已经阅读了所有相关的 MSDN 页面,以及所有相关谷歌搜索的前三页。

0 投票
1 回答
1295 浏览

masm - 在 MASM / GetModuleFileName 中以空值终止字符串

在我的程序中,我从 Windows Api 调用 GetModuleFileName 函数。该函数告诉我正在运行的 *.exe 的路径。

根据MSDN ,在 Windows XP 机器上,字符串 (szSrc) 不是以空值结尾的。

我怎样才能终止它?

0 投票
2 回答
208 浏览

c++ - WinAPI:在位置更改时查找自己可执行的目录

我想创建一个 C++ 程序,该程序不断检查可执行文件的位置,如果不存在则将其移动到定义的位置。

这适用于一次性运行。

但是我的问题是,当我运行可执行文件并将 GetModuleFileName 放在一个循环上并将可执行文件移动到不同的位置时,GetModuleFileName 不会返回新位置,我希望它返回它,我很新到 WinAPI 并且几乎不了解基础知识,所以请不要开始抨击我或其他什么...

0 投票
1 回答
5958 浏览

c++ - GetModuleFileName 不返回路径

我正在尝试使用 VS c++ 获取 win7 下的当前目录,但是

返回长度 58,我认为它是 pBuf 中指向 68 的指针。错误代码为 0。

谢谢!

0 投票
2 回答
778 浏览

c++ - 我可以检索包含非拉丁字符的路径吗?

我调用GetModuleFileName函数,以检索指定模块的完全限定路径,以便通过Process::Start方法调用同一文件中的另一个 .exe。

但是,当路径包含非拉丁字符(在我的情况下为希腊字符)时,无法调用 .exe。

有什么办法可以解决这个问题吗?

代码:

0 投票
0 回答
481 浏览

c++ - GetModuleFileName 在服务中总是返回小写

我需要获取服务中当前可执行文件的路径,但是当使用 GetModuleFileNameW 或全局变量 _pgmptr 时,我总是得到小写路径,这对我来说是不正确的。

示例:原始路径为 C:/MyApp/app.exe 并且 GetModuleFileNameW 始终返回 c:/myapp/app.exe

问题不会出现在桌面应用程序中,只有服务。我怎样才能获得正确的案例路径?

0 投票
1 回答
408 浏览

c++ - GetModuleFileName 的边缘情况不明确

MSDN 文档状态:

lpFilename [输出]

指向接收模块的完全限定路径的缓冲区的指针。如果路径的长度小于 nSize 参数指定的大小,则函数成功并且路径作为以空字符结尾的字符串返回。

如果路径的长度超过了 nSize 参数指定的大小,则函数成功并且字符串被截断为 nSize 个字符,包括终止空字符。

Windows XP:字符串被截断为 nSize 个字符并且不是以空值结尾的。

这是模棱两可的。我是否可以解释为该字符串在 Windows XP 上永远不会以空值结尾?或者当字符串被截断时它不是以空结尾的?

如果有人知道措辞更好的参考资料,或者在某处运行 Windows XP 并且可以简单地测试行为,我将不胜感激。

0 投票
1 回答
174 浏览

c++ - 尝试使用 GetModuleFileName 查找 exec 文件但返回数字

这是我的代码。我有一个缓冲区来保存输出,但它返回数字。有人可以解释一下吗?我怎样才能得到我的 exe 文件?

0 投票
0 回答
534 浏览

windows - GetModuleFileNameW 返回与 GetCurrentDirectoryW (subst) 不同的路径

我创建了一个如下所示的子驱动器:

G:\ => F:\projects\projectname\

当我调用 GetModuleFileNameW

它使用原始路径返回模块路径,例如:

尽管我从 subst drive 位置运行解决方案和项目。

但是,如果我调用 GetCurrentDirectoryW

它最终返回正确的路径,例如:

如何让 GetModuleFileNameW 返回 subst 路径而不是原始路径?