繁体   English   中英

在Windows中是否有一个简单的C ++程序文件/程序文件(x86)指令?

[英]Is there a simple Program Files/Program Files (x86) directive for C++ in windows?

我目前正在硬编码我的应用程序的路径如下:

const char* OriginCopyFile = "C:\\Program Files (x86)\\i-cut\\i-cut\\Origin_copy.txt";

该应用程序将在32和64系统中运行。 如何在没有文件名的情况下检测路径,以便将其与多个文件一起使用,并使其在架构之间可移植。

您可以使用GetModuleFileName获取可执行文件的路径,无论它在何处安装,甚至以后移动。 然后,如果要支持早于Windows 2000的版本,则可以使用PathRemoveFileSpec删除可执行文件名(或strchr()和朋友)。

SHGetSpecialFolderPath(CSIDL_PROGRAM_FILES)至少会给出程序文件目录的路径。 您将不得不处理添加其余路径和文件名。

您可以使用环境变量:

#include <stdio.h>
#include <stdlib.h>

int _tmain(int argc, _TCHAR* argv[])
{
char* programFiles = getenv("ProgramFiles(x86)");   
if (programFiles==NULL)
{
    programFiles = getenv("ProgramFiles");
}

printf(programFiles);

return 0;
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM