当前位置: 首页 > news >正文

Vc中的文件路径问题

      最近打算写一个volume rendering中的focus & context算法,准备用GPU的raycasting来实现,对以前写的程序一直不太满意,View.Cpp奇大无比,里面的类全部糅到了一起,所以打算重新写一个。为了简洁起见,窗口用glut来生成。关于raycasting的具体算法在后面的文章中再具体细说,本文只说文件路径问题。

     通过vs2005新建一个win23 console型,名为GPU_RayCasting的工程时,GPU_RayCasting.cpp文件和众多工程文件都在根目录下。为了方便管理,在工程中分别建立了build、src、data等三个文件夹,而src文件夹又由core、app、shader、math等四个文件夹组成,来存放不同的文件。把众多工程文件放入build文件夹中,GPU_RayCasting.cpp放入'\src\app'文件夹中,并在'\src\math'文件夹中放入Vector3.h文件。

   在GPU_RayCasting.cpp中加载头文件。如何选择头文件的路径呢?绝对路径比较简单,但当工程文件改变位置后,绝对路径就不能用了,为增加程序的可移植性,选用相对路径较好。

      用#include 加载头文件时,"./"表示当前目录,"../"表示当前目录的上一级目录。注意!这个当前目录不是工程所在的目录,而是该文件所在的目录。在include中,'/'与'\'的功能貌似一样,#include "../math/Vector3.h"与#include "..\math\Vector3.h"也貌似等价。

      当使用cgCreateProgramFromFile(CGcontext ctx, CGenum program_type, const char *program_file, CGprofile profile, const char *entry, const char **args)函数创建Cg程序时,const char *program_file中存放是Cg程序的路径,此时同样应选用相对路径来加载Cg程序。同样,"./"表示当前目录,"../"表示当前目录的上一级目录。注意,这个当前目录不是该文件所在的目录,而是解决方案文件sln所在的目录。

      在字符串中,'\'是转义字符,要表示'\',在字符串中应写为'\\',因此"../src/shader/raycasting_shader.cg"与 "..\\src\\shader\\raycasting_shader.cg"等价。



转载于:https://www.cnblogs.com/alex226/archive/2008/12/03/1347000.html

相关文章:

  • Servlet Filter
  • 通过WCF服务,采用多线程技术上传大文件到SharePoint文档库解决方案(初稿)
  • 6月21日云栖精选夜读:国内首位!Node.js社区将阿里云工程师张秋怡吸纳为CTC成员...
  • ASP.NET存储Session的StateServer
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 在VC中使用自定义资源,FindResource,LoadResource,LockResource
  • 第0课 从0开始
  • Table转换Div+CSS_工具下载
  • 创网杯知识竞赛的软件源码
  • PHP扩展之STOMP-安装
  • IP地址获得主机名称
  • python class和class(object)用法区别
  • Eclipse Error Cannot change version of project facet Dynamic Web Moudle to 3.0
  • asp.net控件开发基础(1)
  • (八十八)VFL语言初步 - 实现布局
  • $translatePartialLoader加载失败及解决方式
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 3.7、@ResponseBody 和 @RestController
  • Android Studio:GIT提交项目到远程仓库
  • DataBase in Android
  • iOS编译提示和导航提示
  • Javascript基础之Array数组API
  • Java知识点总结(JavaIO-打印流)
  • js如何打印object对象
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Protobuf3语言指南
  • python学习笔记-类对象的信息
  • Redis学习笔记 - pipline(流水线、管道)
  • Vue 2.3、2.4 知识点小结
  • 机器学习 vs. 深度学习
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 探索 JS 中的模块化
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 小而合理的前端理论:rscss和rsjs
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 阿里云ACE认证学习知识点梳理
  • 正则表达式-基础知识Review
  • ![CDATA[ ]] 是什么东东
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (论文阅读11/100)Fast R-CNN
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)Google的Objective-C编码规范
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .Net - 类的介绍
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET 常见的偏门问题
  • @ModelAttribute 注解
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [20171102]视图v$session中process字段含义
  • [AIGC] Java 和 Kotlin 的区别
  • [Android Studio] 开发Java 程序
  • [autojs]autojs开关按钮的简单使用
  • [BZOJ3223]文艺平衡树