C chdir函数
chdir微软官方文档
在制作小游戏时遇到的问题:图片音频等资源文件太多,和exe同一个目录不方便集中管理

整理方案1
首先创建了一个名为"resource"的文件夹,把程序执行过程中需要用到的外部文件都放进去

开始改造代码
- include头文件direct
#include <direct.h>
- 在主函数头部分添加chdir()
_chdir( "./resource" );
_chdir()用于跳转程序当前工作目录,类似
cd resource
它的原型声明是
_Check_return_ _CRTIMP int __cdecl _chdir(_In_z_ const char * _Path);
使用_getcwd()可以打印当前工作目录
printf("Current directory is %s\n", _getcwd(NULL,NULL));
重新生成项目,再次打开时exe可以读取resource文件夹内的内容

打包完成之后的项目
整理方案2

在上面的方案1中,dll和exe不在同一个目录,需要使用SetDllDirectory设置Dll目录
有一种比较偷懒的方法就是:将exe和dll整合在了一个bin文件夹
现在resource变成了exe的上一级目录
此时只需稍加改动即可
chdir( "../resource" ); /*加多一个点*/
总结
- 直接搜索chdir():定位到<unistd.h>实际上vs2010并没有这个头文件,#include <unistd.h>对于mingw来说是行的通的
但网上很多关于vs2010的回答(大部分是复读机)都在使用#ifndef指令include<io.h>和<process.h>,的确可以运行但编译器依旧报错,原因在于io.h和process.h同样没有定义chdir函数,chdir函数的定义在direct.h中 - 搜索程序设置工作目录:定位到vs调试设置,调试设置只是对于配置了开发环境的程序员是有效,但对于普通用户而言,exe的工作目录依旧在默认位置(读取和exe文件同一目录的文件)
C chdir函数的更多相关文章
- PHP chdir函数:改变当前的目录
PHP chdir函数的作用是改变当前的目录,这里主机吧详细介绍下chdir函数的用法,并列举使用chdir函数的例子. chdir定义和用法: chdir() 函数改变当前的目录. chdir实例: ...
- PHP chdir() 函数
实例 改变当前的目录: <?php// Get current directoryecho getcwd() . "<br>"; // Change direct ...
- linux之chdir函数解析
[lingyun@localhost chdir]$ ls chdir.c [lingyun@localhost chdir]$ cat chdir.c /********************* ...
- chdir函数的使用【学习笔记】
#include "apue.h" #include <fcntl.h> int main(void) { ) err_sys("chdir failed&q ...
- 文件和目录之chdir、fchdir和getcwd函数
每个进程都有一个当前工作目录,此目录是搜索所有相对路径名的起点(不以斜杠开始的路径名为相对路径名).当用户登录到UNIX系统时,其当前工作目录通常是口令文件(/etc/passwd)中该用户登录项的第 ...
- 函数chdir、fchdir和getcwd
函数chdir.fchdir和getcwd chdir.fchdir函数 每个进程都有一个当前工作目录,当前目录是进程的一个属性 当用户登录UNIX系统时,其当前工作目录通常是口令文件 ...
- 转:Delphi 函数大全
Delphi 函数大全 - xiucaiyao的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/xiucaiyao/article/details/4544039 名 ...
- VB6.0 和VB.NET 函数对比
VB6.0和VB.Net的对照表 VB6.0 VB.NET AddItem Object名.AddItem Object名.Items.Add ListBox1.Items.Add ComboBox1 ...
- PHP常用函数大全
usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...
随机推荐
- Nginx+Tomcat+Memcached实现session共享
实验环境: server1:nginx tomcat memcached server2:tomcat memcached Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入 ...
- python 逆序按行读取文件
How to read a file in reverse order? import os def readlines_reverse(filename): with open(filename) ...
- css 文字超出俩行省略号显示
.center-titles{ overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: ...
- 源码解析.Net中Host主机的构建过程
前言 本篇文章着重讲一下在.Net中Host主机的构建过程,依旧延续之前文章的思路,着重讲解其源码,如果有不知道有哪些用法的同学可以点击这里,废话不多说,咱们直接进入正题 Host构建过程 下图是我自 ...
- Linux常用命令 - 五种创建文件命令详解
21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 创建文 ...
- IP头详解
IP包头长度(Header Length):长度4比特.这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分.该部分占4个bit位,单位为32bit(4个字节),即本区域值= IP ...
- 《openssl编程》:第一章基础知识
第一章 基础知识 1.1 对称算法 对称算法使用一个密钥.给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同.解密时,使用读密钥与加密密钥相同. 对称算法主要有四种加密模式: (1) 电子密码 ...
- Winform EF CodeFist方式连接数据库
直接生成ado.net 实体数据模型挺方便的,但只有一步步的手写代码才能更好的理解EF,在学习asp.net core过程中手写代码已经明白了怎么回事,但实现过程有些麻烦不知道如何记录,但Winfor ...
- LVS+keepalived集群
一.Keepalived工具介绍专为LVS和HA设计的一款健康检查工具 支持故障自动切换(Failover) 支持节点健康状态检查(Health Checking) 官方网站:http://www.k ...
- webService动态调用及返回至处理
http://www.cnblogs.com/xffy1028/archive/2012/05/07/2487595.html using System; using System.Collectio ...