系统文件夹路径的系统宏定义

Const CSIDL_ADMINTOOLS As Long = &H30                ‘(用户)\开始菜单\程序\系统管理工具
Const CSIDL_ALTSTARTUP As Long = &H1D               
‘未本地化的启动
Const CSIDL_APPDATA As Long = &H1A                  
‘(用户)\应用程序的数据
Const CSIDL_BITBUCKET As Long = &HA                 
‘(桌面)\回收站
Const CSIDL_CONTROLS As Long = &H3                  
‘我的电脑\控制面板
Const CSIDL_COOKIES As Long = &H21
Const CSIDL_DESKTOP As
Long = &H0                    ‘桌面
Const CSIDL_DESKTOPDIRECTORY As Long =
&H10          ‘(用户)\桌面
Const CSIDL_FAVORITES As Long =
&H6                  ‘(用户)\个性化设置
Const CSIDL_FONTS As Long =
&H14                     ‘windows\字体
Const CSIDL_HISTORY As Long =
&H22
Const CSIDL_INTERNET As Long = &H1                  
‘IE(桌面上的图标
Const CSIDL_INTERNET_CACHE As Long = &H20           
‘因特网缓存文件夹
Const CSIDL_LOCAL_APPDATA     As Long = &H1C           
‘(用户)\本地设置\应用程序数据
Const CSIDL_DRIVES As Long = &H11                   
‘我的电脑
Const CSIDL_MYPICTURES As Long = &H27                ‘C:\Program
Files\My Pictures
Const CSIDL_NETHOOD As Long = &H13                  
‘(用户)\网上邻居中的元素
Const CSIDL_NETWORK As Long = &H12                  
‘网上邻居
Const CSIDL_PRINTERS As Long = &H4                  
‘我的电脑\打印机
Const CSIDL_PRINTHOOD As Long = &H1B                
‘(用户)\打印机连接
Const CSIDL_PERSONAL As Long = &H5                  
‘我的文档
Const CSIDL_PROGRAM_FILES As Long = &H26             ‘C:\Program
Files
Const CSIDL_PROGRAM_FILESX86 As Long = &H2A          ‘x86 apps
(Alpha)的程序文件目录
Const CSIDL_PROGRAMS As Long = &H2                  
‘开始菜单\程序
Const CSIDL_PROGRAM_FILES_COMMON As Long = &H2B      ‘Program
Files\Common
Const CSIDL_PROGRAM_FILES_COMMONX86 As Long = &H2C
‘RISC上的x86 \Program Files\Common
Const CSIDL_RECENT As Long =
&H8                     ‘(用户)\最近记录目录
Const CSIDL_SENDTO As Long =
&H9                     ‘(用户)\发送到目录
Const CSIDL_STARTMENU As Long =
&HB                  ‘(用户)\开始菜单
Const CSIDL_STARTUP As Long =
&H7                    ‘开始菜单\程序\启动
Const CSIDL_SYSTEM As Long =
&H25                    ‘system文件夹
Const CSIDL_SYSTEMX86 As Long =
&H29                 ‘x86 apps (Alpha)的system文件夹
Const CSIDL_TEMPLATES As
Long = &H15
Const CSIDL_PROFILE As Long = &H28                  
‘用户概貌文件夹
Const CSIDL_WINDOWS As Long = &H24                  
‘Windows目录或SYSROOT()
Const CSIDL_COMMON_ADMINTOOLS As Long = &H2F        
‘(所有用户)\开始菜单\程序\系统管理工具
Const CSIDL_COMMON_ALTSTARTUP As Long =
&H1E         ‘未本地化的通用启动
Const CSIDL_COMMON_APPDATA As Long =
&H23            ‘(所有用户)\应用程序数据
Const CSIDL_COMMON_DESKTOPDIRECTORY As
Long = &H19 ‘(所有用户)\桌面
Const CSIDL_COMMON_DOCUMENTS As Long =
&H2E          ‘(所有用户)\文档
Const CSIDL_COMMON_FAVORITES As Long =
&H1F          ‘(所有用户)\设置
Const CSIDL_COMMON_PROGRAMS As Long =
&H17           ‘(所有用户)\程序
Const CSIDL_COMMON_STARTMENU As Long =
&H16          ‘(所有用户)\开始菜单
Const CSIDL_COMMON_STARTUP As Long =
&H18            ‘(所有用户)\启动
Const CSIDL_COMMON_TEMPLATES As Long =
&H2D          ‘(所有用户)\临时

#include <shlobj.h>
#include <shlwapi.h>
#include <windows.h>
#include <stdio.h>

void main(void)
{
    char DataDir[MAX_PATH];
    int len;
    memset(DataDir, 0, sizeof(DataDir));
    if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, 0, DataDir)))
        PathAppendA(DataDir, "XXXX\\XXXX.txt");   //  DataDir\XXXX\XXXX.txt  表示路劲
    else
        return -1;
    len = strlen(DataDir);
    argv[5] = (char*) malloc(strlen(DataDir)); // argv[5] 为自己定义的的变量指针
    memset(argv[5], 0, strlen(DataDir));
    strcpy(argv[5], DataDir);

}
时间: 2024-08-07 16:39:02

系统文件夹路径的系统宏定义的相关文章

Linux学习笔记——举例说,makefile 添加宏定义

0.前言 从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile.假设自己动手写一个makefile总认为非常吃力. 所以特意借助博客总结makefile的相关知识.通过样例说明makefile的详细使用方法. 例说makefile分为下面几个部分.很多其它内容请參考[例说makefile索引博文] 1.仅仅有单个C文件 2.含有多个C文件 3.须要包含头文件路径 4.添加宏定义 5.添加系统共享库 6.添加自己定义共享库 7.一

Linux学习笔记——例说makefile 增加宏定义

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

ios 宏定义 系统版本 判定

====================================================== 当需要判断iOS系统版本的时候,相信很多人都会这么干: #define SystemVersion [[UIDevice currentDevice] systemVersion].floatValue 现在告诉屌丝们一个更好的办法就是其实系统已经做了类似的宏定义,不需要我们再去定义了 在Simulator-IOS7.0/usr/include/Availability.h中已经定义了很

iOS宏定义的使用与规范

http://my.oschina.net/leejan97/blog/354904 宏定义在很多方面都会使用,例如定义高度.判断iOS系统.工具类,还有诸如文件路径.服务端api接口文档.为了对宏能够快速定位和了解其功能,我们最好在定义的时候将其放入特定的头文件中,下面我抛砖引玉,对一些常用的宏进行分类.分文件定义,希望对大家有所帮助. 定义尺寸类的宏 DimensMacros.h //状态栏高度 #define STATUS_BAR_HEIGHT 20 //NavBar高度 #define

C中的预编译宏定义

文章来自 http://www.uml.org.cn/c++/200902104.asp 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理. C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编译, 连接过程集成到一起了. 编译预处理往往在后台运行. 在有的C编译器中, 这些过程统统由

iOS敏捷开发之道,常用的宏定义总结

iOS开发中,直接在pch文件中导入宏定义.在做项目的时候,直接拿过来使用,可以大幅度提高开发速度. 下面是 个人总结的一些宏定义.如果大家有其他的常用的宏定义,欢迎添加.我会定期更新这个blog-.. 话不多说,直接上干货 // 在宏的参数前加上一个#,宏的参数会自动转换成c语言的字符串 #define MRKeyPath(objc,keyPath) @(((void)objc.keyPath, #keyPath)) //** 加载xib ***************************

[转]c语言宏定义#define的理解与资料整理

原文地址:http://www.cnblogs.com/haore147/p/3646934.html 1. 利用define来定义 数值宏常量 #define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎.它可以出现在代码的任何地方,从本行宏定义开始,以后的代码就就都认识这个宏了:也可以把任何东西定义成宏.因为编译器会在预编译的时候用真身替换替身,而在我们的代码里面却又用常常用替身来帮忙. 看例子: 1 #define PI 3.141592654 在此后的代码

iOS开发过程中,NSLog宏定义

在项目开发的过程中,经常遇到要在调试的时候打印log,但是上线或是release 的时候不需要去显示log 的情况,此时你辛辛苦苦写了那么多的log,你要么就手动注释掉,要么就是设一个开关变量,企图用这个总开关开启.其实可以充分利用宏定义进行设置. 步骤比较简单,只需要 在ProjectName_Prefix.pch 中追加你对应的宏定义,不用import 就可以直接使用了. 宏定义写法如下: [plain] view plaincopy #ifdef DEBUG #define LOG(...

宏定义重写NSLog

只需要 在ProjectName_Prefix.pch 中追加你对应的宏定义,不用import 就可以直接使用了. #define DEBUG //宏输出函数 #ifdef DEBUG #define SFun_Log(fmt, ...) NSLog((@"%s," "[lineNum:%d]" fmt) , __FUNCTION__, __LINE__, ##__VA_ARGS__); //带函数名和行数 #define SL_Log(fmt, ...) NSLo