㈠ 怎么用C#创建文件夹
方法1
调用Windows API函数 CreateDirectory()和RemoveDirectory(),成功返回0,否则返回非零。
头文件<windows.h>
创建:CreateDirectory()
2.C中的access函数:
int access(const char *filename, int amode);
amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。
3.这个函数还可以检查其它文件属性:
06 检查读写权限
04 检查读权限
02 检查写权限
01 检查执行权限
00 检查文件的存在性
而这个就算这个文件没有读权限,也可以判断这个文件存在于否:存在返回0,不存在返回-1
㈡ 我要在keil中头文件声明和C文件定义头文件中的变量,可是我在头文件中声明后再到C文件中定义的时候
是这样的,通常,变抄量的定义是放在C文件里,而不是头文件里,C文件定义,头文件引用。比如,你在X.c定义一个变量 unsigned char a;如果你想要在Y.C文件里使用这个变量,你可以在Y.C里引用,引用方法如下:extern unsigned char a;你也可以在一个头文件里引用,引用方法是一样的:extern unsigned char a;在头文件引用后,凡是包含了这个头文件的C文件,都可以使用那个变量a,而不必再另外引用了。有一点要注意,引用的时候,不可以带初始化,例如,X.c文件里这样定义的变量:unsigned char a = 100; 定义的时候可以初始化,在头文件或者其它C文件引用的时候,不能初始化,妈extern unsigned char a = 100;这是不可以的,直接引用就行了:extern unsigned char a;
㈢ CMake里面怎么递归地设定头文件的搜索目录
CMake头文件搜索路径# 中午吃完饭,就到了办公室,开始看 OGRE 的CMake配置文件。# 想根据实例,再配合 CMake 安装包里自带了官方Manual,学习CMakeLists文件的编写。# 不得不承认,没有外网真心惨。用手机查资料眼睛都瞅瞎了。# 中间出去吃了个晚饭,然后一直研究到10点,还算是有点收获本文内容要点:1. 多目录下,头文件路径包含2. 项目依赖关系设置3. 发现的一些问题本文涉及到的CMake命令:project(name) : 设置project的名字为name。add_dependencies:设置依赖关系add_subdirectory:添加子目录add_executable:添加可执行文件add_library:添加库cmake_minimum_required:设置cmake最低版本要求include_directories:包含目录target_link_libraries:链接库set:可以用于设置变量补充命令:file(GLOB_RECURSE HEADER_FILES dir/*.h??)此命令可以用来收集源文件 HEADER_FILES 作为变量保存收集的结果。 后面为文件过滤器,其中dir为起始搜索的文件夹,即在dir目录下,开始收集,而且会遍历子目录。 ? 代表 a-z。首先给出目录结构(“-”表示目录级数)-sin–include—sin.h–src—sin.cpp-sinutil–include—sinutil.h–src—sinutil.cpp-main–main.cpp目的:main.cpp 要使用 sin 里面 sin.h 和 sin.cpp 生成的静态库 sin.lib,而 sin.lib 的生成要使用 sinutil 里面的 sinutil.h 和 sinutil.cpp 生成的静态库 sinutil.lib 。sinutil.cpp 要包含 sinutil.h,而 sinutil.h 不在 sinutil.cpp 目录下。同理 sin.cpp 也要包含 sinutil.h ,main.cpp 要包含 sin.h。根据CMake的规则,在根目录下和每个子目录下加入 CMakeLists.txt 文件。# 为了便于区分,我给每个 CMakeLists.txt 加了编号后缀。# 真正运行的时候,CMake配置文件只能命名为 CMakeLists.txt。得到的目录结构如下:- CMakeLists.txt – 1-sin– CMakeLists.txt – 2–include—sin.h–src—sin.cpp-sinutil– CMakeLists.txt – 3–include—sinutil.h–src—sinutil.cpp-main– CMakeLists.txt – 4–main.cppCMake配置文件内容如下:#CMakeLists.txt – 1cmake_minimum_required(VERSION 2.8.1)project(CMakeDemo)include_directories(${CMakeDemo_SOURCE_DIR}/sin/include)include_directories(${CMakeDemo_SOURCE_DIR}/sinutil/include)add_subdirectory(sin)add_subdirectory(sinutil)add_subdirectory(main)#CMakeLists.txt – 4project(MainDemo)set(SRC_LIST main.cpp)add_executable(demo ${SRC_LIST})add_dependencies(demo SinLibrary)target_link_libraries(demo ${SinLibrary})#CMakeLists.txt – 2set(HEADER_LIST include/sin.h)set(SRC_LIST src/sin.cpp)include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)add_library(SinLibrary ${HEADER_LIST} ${SRC_LIST})add_dependencies(SinLibrary SinUtilLibrary)target_link_libraries(SinLibrary ${SinUtilLibrary})#CMakeLists.txt – 3set(HEADER_LIST include/sinutil.h)set(SRC_LIST src/sinutil.cpp)include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)add_library(SinUtilLibrary ${HEADER_LIST} ${SRC_LIST})结论:1. CMake使用 include_directories 命令来添加头文件包含路径,且 include_directories 命令具有继承性。下级目录继承了上级目录中CMakeLists.txt 里面 include 的 directrories。但是平级目录之间的 CMakeList.txt 里面的include_directories 不能共享。2. CMAKE_CURRENT_SOURCE_DIR 为 CMake 定义的环境变量,指向当前 CMakeLists.txt 所在的目录。3. 当使用 project(name) 命令时,CMake会自动生成两个变量 name_SOURCE_DIR 和 name_BINARY_DIR,前一个指向使用 project 命令的CMakeLists.txt 所在的文件夹,后一个指向用cmake构建时,Build 目录下对应的目录。问题:1. 目前还没搞清 project 与 VS 里面的 解决方案(solution)和 工程(项目,project)的对应关系。2. 使用 add_dependencies 来设置依赖关系时,在VS 2003 下,会为每一个subdirectory里面的project生成一个额外的带 UTILITY 后缀的工程,能不生成吗?
㈣ C++头文件顺序
因为stdafx.h里面包含了很多windows的预编译头文件,这些头文件定义了很多基本的数据类型和数据结构,而档并这些数据结构,很可能是后面的头文件里面用到的,所以这个文件应该放到最前面关于顺序的影响,你可以简单想象在编和卖译器对文件进唤蠢逗行预处理的时候,会把#include的文件在当前位置展开就行了