gpt4 book ai didi

c - shellexec 和 c :\program files - x86 and x64 portability

转载 作者:可可西里 更新时间:2023-11-01 10:40:10 25 4
gpt4 key购买 nike

我正在修改一个开源 GUI(用 c 编写)以将新菜单项添加到托盘应用程序。新的菜单项在程序根目录 c:\program files 目录中执行一个文件 (update.exe)。我正在使用 shellexec(),它在 x86 上运行良好,但由于 x64 上的路径不同 - c:\program files (x86),它无法加载。我想使用一些像 %programfiles% 这样的环境变量的效果。对此有什么优雅的解决方案?

或者,我确实可以更改 update.exe 文件的存储位置。将它放在“程序文件”中似乎是最合乎逻辑的。对于上面的问题,它应该放在程序文件之外吗?如果是,在哪里?

最佳答案

您可以使用 GetModuleFileName()检索可执行文件的完整路径。然后你只需要从末尾剪切文件名,你就会有完整的目录路径。

像这样的东西应该可以解决问题:

TCHAR szPath[MAX_PATH];
LPTSTR szFileName;

GetModuleFileName(g_hInstance, szPath, sizeof(szPath)/sizeof(TCHAR));
szFileName = _tcsrchr(szPath, TEXT("\\"));
*szFileName = TEXT('\0');

// szPath now contains the path

(警告!未经测试!)

关于c - shellexec 和 c :\program files - x86 and x64 portability,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4071379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com