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

整理方案1

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

开始改造代码

  1. include头文件direct
#include <direct.h>
  1. 在主函数头部分添加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" ); /*加多一个点*/

总结

  1. 直接搜索chdir():定位到<unistd.h>实际上vs2010并没有这个头文件,#include <unistd.h>对于mingw来说是行的通的
    但网上很多关于vs2010的回答(大部分是复读机)都在使用#ifndef指令include<io.h>和<process.h>,的确可以运行但编译器依旧报错,原因在于io.h和process.h同样没有定义chdir函数,chdir函数的定义在direct.h中
  2. 搜索程序设置工作目录:定位到vs调试设置,调试设置只是对于配置了开发环境的程序员是有效,但对于普通用户而言,exe的工作目录依旧在默认位置(读取和exe文件同一目录的文件)

C chdir函数的更多相关文章

  1. PHP chdir函数:改变当前的目录

    PHP chdir函数的作用是改变当前的目录,这里主机吧详细介绍下chdir函数的用法,并列举使用chdir函数的例子. chdir定义和用法: chdir() 函数改变当前的目录. chdir实例: ...

  2. PHP chdir() 函数

    实例 改变当前的目录: <?php// Get current directoryecho getcwd() . "<br>"; // Change direct ...

  3. linux之chdir函数解析

    [lingyun@localhost chdir]$ ls chdir.c [lingyun@localhost chdir]$ cat chdir.c  /********************* ...

  4. chdir函数的使用【学习笔记】

    #include "apue.h" #include <fcntl.h> int main(void) { ) err_sys("chdir failed&q ...

  5. 文件和目录之chdir、fchdir和getcwd函数

    每个进程都有一个当前工作目录,此目录是搜索所有相对路径名的起点(不以斜杠开始的路径名为相对路径名).当用户登录到UNIX系统时,其当前工作目录通常是口令文件(/etc/passwd)中该用户登录项的第 ...

  6. 函数chdir、fchdir和getcwd

    函数chdir.fchdir和getcwd chdir.fchdir函数     每个进程都有一个当前工作目录,当前目录是进程的一个属性     当用户登录UNIX系统时,其当前工作目录通常是口令文件 ...

  7. 转:Delphi 函数大全

    Delphi 函数大全 - xiucaiyao的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/xiucaiyao/article/details/4544039 名 ...

  8. VB6.0 和VB.NET 函数对比

    VB6.0和VB.Net的对照表 VB6.0 VB.NET AddItem Object名.AddItem Object名.Items.Add ListBox1.Items.Add ComboBox1 ...

  9. PHP常用函数大全

    usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...

随机推荐

  1. 痞子衡嵌入式:MCUXpresso IDE下SDK工程在Build配置上与IAR,MDK差异

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下SDK工程在Build配置上与IAR,MDK差异. 恩智浦 SW 团队每个季度都会公布 SDK.Tool ...

  2. Kickstart部署多系统

    原文转自:https://www.cnblogs.com/itzgr/p/10029587.html作者:木二 目录 一 准备 1.1 完整架构:Kickstart+DHCP+HTTP+TFTP+PX ...

  3. php 字符串分割输出

    分割字符串 //利用 explode 函数分割字符串到数组 复制代码代码如下:<?php $source = "hello1,hello2,hello3,hello4,hello5&q ...

  4. centos7 查看端口占用情况

    2021-08-02 1. 查看端口占用情况 # 查看 8088 端口占用情况 lsof -i tcp:8088 # 若提示没有 lsof 命令, yum 安装一下 yum -y install ls ...

  5. appnium显式等待机制

    强制等待: sleep不推荐全局隐式等待 全局隐式等待: 在服务端等待 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); ...

  6. 最新版微软视窗(Windows)作业系统下载(2020-08-19)

    为了更好的使用WSL(Windows Subsystem For Linux),不得不用最新的windows 10 2004版了,这个版本的WSL已经是第二版了,即WSL2.下面给出下载地址 系统发布 ...

  7. PHP中命名空间是怎样的存在(一)?

    命名空间其实早在PHP5.3就已经出现了.不过大部分同学可能在各种框架的使用中才会接触到命名空间的内容,当然,现代化的开发也都离不开这些能够快速产出的框架.这次我们不从框架的角度,仅从简单的代码角度来 ...

  8. win8 连接到OneDrive时出现问题-感叹号

    显示最后更新时间是1970年... 还有感叹号,没法同步 解决办法: 管理员运行cmd命令: 输入"netsh int ip reset c: esetlog.txt",按下回车键 ...

  9. ecshop刷新页面出现power by ecshop和链接的解决办法

    当小伙伴在使用echop模板进行修改的时候,如果你删掉底部自带版权后,再调试程序刷新界面的时候,时不时就会冒出一个power by ecshop,而且是带有链接的,很不舒服,所以需要去掉,下面是最简单 ...

  10. 前端常用场景总结CSS/JS/插件(实用篇更新中...)

    <div class="box box1"> <span>垂直居中</span> </div> .box1{ display: ta ...