C++之获取当前程序的路径、Windows目录的路径和系统目录的路径

2024-05-01 1942阅读

在Windows操作系统中,程序的路径、Windows目录的路径和系统目录的路径通常指的是以下三个不同的概念:

C++之获取当前程序的路径、Windows目录的路径和系统目录的路径
(图片来源网络,侵删)

当前程序的路径:指的是执行中的程序文件所在的完整路径。例如,如果你的程序名为MyApp.exe,并且它位于C:\Program Files\MyApp\目录下,那么当前程序的路径就是C:\Program Files\MyApp\MyApp.exe。你可以使用Windows API函数GetModuleFileName来获取当前程序的路径。

Windows目录的路径:通常指的是Windows操作系统安装目录的路径。对于大多数现代Windows版本(如Windows 10),Windows目录通常是C:\Windows。你可以使用Windows API函数GetWindowsDirectory来获取Windows目录的路径。

系统目录的路径:通常指的是包含系统关键文件的目录,这些文件用于支持Windows操作系统及其组件的运行。对于Windows,系统目录通常位于C:\Windows\System32(对于32位系统)或C:\Windows\SysWOW64(对于64位系统中的32位应用程序)。你可以使用Windows API函数GetSystemDirectory来获取系统目录的路径。

以下是一个简单的C++程序示例,展示了如何获取并打印当前程序的路径、Windows目录的路径和系统目录的路径:

Python
#include #include   void CopySelf(){  // 保存自身程序的路径  wchar_t szSelfName[MAX_PATH] = { 0 };  // 保存Windows目录的路径  wchar_t szWindowsPath[MAX_PATH] = { 0 };  // 保存系统目录的路径  wchar_t szSystemPath[MAX_PATH] = { 0 };  // 临时路径变量  char szTmpPath[MAX_PATH] = { 0 };  GetModuleFileName(NULL, szSelfName, MAX_PATH);  GetWindowsDirectory(szWindowsPath, MAX_PATH);  GetSystemDirectory(szSystemPath, MAX_PATH);  // 打印路径    wprintf(L"Self Path: %s\n", szSelfName);  wprintf(L"Windows Path: %s\n", szWindowsPath);  wprintf(L"System Path: %s\n", szSystemPath);}int main(){  CopySelf();  return 0;}

输出:

Self Path: D:\vs pj\opencascade\helloworld\x64\Debug\helloworld.exe

Windows Path: C:\WINDOWS

System Path: C:\WINDOWS\system32

代码解释:

 :这是Windows API的头文件,它包含了各种Windows系统的函数、数据类型和宏。这些函数用于访问Windows核心功能,例如获取系统目录或当前模块的文件名。  

 :这个头文件用于输入/输出流,尽管在这段代码中它并没有被用到,因为所有路径的打印都是通过`wprintf`完成的,而不是`std::cout`。

 wchar_t:这是一个宽字符类型,用于存储Unicode字符。由于Windows API通常使用宽字符,所以这里选择了`wchar_t`。  

MAX_PATH:这是一个常量,定义了Windows系统中文件路径的最大长度。  

 GetModuleFileName(NULL, szSelfName, MAX_PATH);:这个函数调用获取当前模块的完整路径,并将其存储在`szSelfName`数组中。 

 GetWindowsDirectory(szWindowsPath, MAX_PATH);:这个函数调用获取Windows目录的路径,并将其存储在`szWindowsPath`数组中。  

 GetSystemDirectory(szSystemPath, MAX_PATH);:这个函数调用获取系统目录的路径,并将其存储在`szSystemPath`数组中。 

 wprintf:这是一个宽字符版本的`printf`函数,用于打印宽字符字符串。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]