D3D9编译原理 龙书 pdf镜面映象

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)如何执行龙书中的代码
编辑:www.fx114.net
本篇文章主要介绍了"如何执行龙书中的代码",主要涉及到如何执行龙书中的代码方面的内容,对于如何执行龙书中的代码感兴趣的同学可以参考一下。
龙书: DX9游戏开发编程基础
龙书中的代码没有工程,只有.h.cpp文件
所以需要我们自己建工程
1.创建一个win32项目,如果一开始不小心创建为控制台,则可以在项目属性的链接器,系统,子系统中修改为windows
许多新手在编程时经常遇到“无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用”这样的错误,最近看了一些这方面的书籍,现将解决方案大概叙述一下:
连接程序在负责连接可执行程序时,选择相应的c/c++运行时启动函数。如果设定了/subsystem:windows连接程序开关,那么连接程序会试图寻找WinMain或wWinMain函数。如果连个函数都不存在,那么就会返回一个“一个未解决的外部符号”(无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用)
同样,如果设定了/subsystem:console连接程序开关,那么连接程序就会试图寻找main函数或者wmain函数,如果找不到这连个函数是,连接程序返回unresolved externel symbol错误信息。
变成新手容易犯的一个错误是,创建应用程序时选择了错误的应用程序类型。例如,开发人员创建了一个新的Win32应用程序项目,并给这个项目创建了一个入口函数main。在这种情况下,创建应用程序时,开发人员就会看到一个连接程序的错误信息。这是因为Win32应用程序项目设置了/subsystem:windows连接程序开关,但是却找不到相应的Winmain或者wWinmain函数。这是侯你可以有以下几种解决方案。
1 将main函数改为Winmain函数
2 将/subsystem:windows开关改为/subsytem:console
3全部删除/subsytem:windows开关,让连接程序根据源代码中实现的函数进行正确的操作。
更改/subsystem:windows的方法:
右键点击项目,选择属性,会看到如下的选项框,点击连接器-&系统,在右侧会看到“子系统”选项,在这里可以选择相应的连接程序开关
2.将所有的文件都copy到工程的文件目录下,并添加.h.cpp和其他资源
3.删除原有工程的含有main的文件(如果建立的是空项目,就不用删除了),如,test.cpp这样程序就会找到源代码中的mian入口了。然后忽略预编译头
4.设置dx库,头文件,dll的路径
#pragma comment(lib,&dxguid.lib&)&
#pragma comment(lib,&d3d9.lib&)&
#pragma comment(lib,&d3dx9.lib&)
#pragma comment(lib,&winmm.lib&)
选择多字节字符集
7.制作一个模板,以后就用它来添加代码了
8.当然,还没有完,需要到shader部分,由于编译器的版本的更新,还会出现如下的问题。
error&X3025:&global&variables&are&implicitly&constant,&enable&compatibility&mode&to&allow
vector LightD
LightDirection.w = 0.0f;
这就是报错的代码了,
全局变量是extern也是常量,在shader里面不能修改,但可以从宿主程序里改。
以前的编译器没有强制这一点,现在新的强化了这一要求。
将D3DXCompileShaderFromFile的第六个参数改为D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY即可&
& & &&hr&=&D3DXCompileShaderFromFile(
&&&&&&&&&&&&diffuse.txt&,
&&&&&&&&&&0,
&&&&&&&&&&0,
&&&&&&&&&&&&Main&,&//
entry point function name
&&&&&&&&&&&&vs_1_1&,
&&&&&&&&&&&//D3DXSHADER_DEBUG,
&&&&&&&&&&&D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY,
&&&&&&&&&&&&shader,
&&&&&&&&&&&&errorBuffer,
&&&&&&&&&&&&DiffuseConstTable);
9.龙书的shader的后缀名都是.txt,在vs2008中是没有高亮的,作为一个苛刻的程序员,必须要进行设计。
在工具-&选项-&文本编辑器-&文件扩展名,中加上.txt,编辑器使用vc++,这样就能高亮了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:开始看龙书了,结果初始化都可能才看懂了一半【c++吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:298,265贴子:
开始看龙书了,结果初始化都可能才看懂了一半收藏
怎么办,感觉好恐慌~求救
博为峰作为良心上市企业,提供免费试学,零元入学服务,签订就业协议,保障薪水8K+.博为峰拒绝灌输式填鸭教学,让每个c++都可以独当一面,成为大牛!
编译原理???——来自 爱贴吧 Windows Phone 客户端
撸个编译器再回去看
连汇编都没学的路过。。。
初始化?一开始不是正则和有穷自动机么?
不是一开始就是正则么。。。+1
难道不是dx龙书么
额,我看的是d3d的龙书
我以为是编译原理- -正想说我也在看求加好友一起学呢
D3D的那本龙书? 曾经买了一本后来丢了.
初始化就是把变量在设定是赋值叫初始化ps:int a=2;叫做把a初始化为2!如果是a=2;叫做设定变量a再给a赋值成2你明白了
呵呵, D3D确实不好学。 我建议你去看浅墨的Blog
在网上可以搜下。,讲的很多。比如 D3D的初始化,纹理,以及各种矩阵变换、顶点 索引 缓存等等 都有介绍。。 希望能帮到你!
d3d的龙书看到第八章就看不下去了 后转linux之后就再也没碰过directx
固定管线的第一版,可以看看,了解原理就可以了。第二版Shader卷可以好好研究下,因为现在都转可编程管线了。再加上D3D9渐渐淘汰,D3D10,11版本的龙书都已经出了。PS:D3D10的龙书有中文版。
Directx变太快了,,,跟不上啊,,,所以后来转投opengl了,,,
登录百度帐号推荐应用他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 龙书 pdf 的文章

 

随机推荐