WINDOWS游戏编程大师技巧-常见编绎连接错误FAQ

转载 2013年12月03日 09:08:08

http://blog.csdn.net/bfqiwbifj/article/details/5829715

 

        WINDOWS游戏编程大师技巧-常见编绎连接错误FAQ       

分类:            WINDOW游戏编程大师技巧2170人阅读评论(4)收藏举报

1.无法从“const char [10]”转换为“LPCWSTR”

vs6,vs2005的版本问题
解决方案1:
winclass.lpszClassName = (LPCTSTR)WINDOW_CLASS_NAME;
解决方案2:
wndcls.lpszClassName = L"ShadowJack first window";

2.error LNK2019: 无法解析的外部符号 _DirectDrawCreateEx@16,该符号在函数 "int __cdecl

Game_Init(void *,int)" (?Game_Init@@YAHPAXH@Z) 中被引用

解决方案:
项目->属性->链接器->常规->附加库目录:
"E:/Program Files/Microsoft DirectX 9.0 SDK (February 2005)/Lib/x86"
项目->属性->链接器->输入->附加依赖项:
ddraw.lib

E:/Program Files/Microsoft DirectX 9.0 SDK (February 2005)/Include
E:/Program Files/Microsoft DirectX 9.0 SDK (February 2005)/Lib/x86

3.设置协同等级
// set cooperation to normal since this will be a windowed app
lpdd->SetCooperativeLevel(main_window_handle, DDSCL_NORMAL);

// set cooperation to full screen 设置一个全屏窗口
if (FAILED(lpdd->SetCooperativeLevel(main_window_handle,
                                      DDSCL_FULLSCREEN | DDSCL_ALLOWMODEX |
                                      DDSCL_EXCLUSIVE | DDSCL_ALLOWREBOOT)))
   {
   // error
   return(0);
   } // end if

4.设置屏幕分辨率
// set display mode to 640x480x8
if (FAILED(lpdd->SetDisplayMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP,0,0)))
   {
   // error
   return(0);
   } // end if

5.什么是光栅化
现实中的视觉图像是连续的,但是电子屏幕上的图像是一个个的点组成的,叫做像素,要把连续的图

像用离散的像素表示出来就是光栅化了。


6.fatal error C1083: 无法打开包括文件:“dsound.h”: No such file or directory
别忘记了编程时附带,在Project/Setting/Link/ 中加入 strmbasd.lib uuid.lib winmm.lib
将directX sdk下的include文件夹下的.h文件拷贝到VC的include文件夹下


7.error LNK2001: 无法解析的外部符号 _IID_IDirectDraw7

好多初学者在用DX SDK写自己的应用时,都莫名其妙的发现如下几个类似的编译(更准确地说是链接

)错误:

FDraw.obj : error LNK2001: 无法解析的外部符号 _IID_IDirectDraw7
FDraw.obj : error LNK2019: 无法解析的外部符号 _DirectDrawCreate@12 ,该符号在函数 “int

__cdecl DDInitialize(void)” (?DDInitialize@@YAHXZ) 中被引用
FInput.obj : error LNK2001: 无法解析的外部符号 _GUID_SysKeyboard
FInput.obj : error LNK2001: 无法解析的外部符号 _IID_IDirectInput8A
LIBCD.lib(wincrt0.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16 ,该符号在函数

_WinMainCRTStartup 中被引用
dinput8.lib(dilib1.obj) : error LNK2001: 无法解析的外部符号 _GUID_ZAxis
dinput8.lib(dilib1.obj) : error LNK2001: 无法解析的外部符号 _GUID_YAxis
dinput8.lib(dilib1.obj) : error LNK2001: 无法解析的外部符号 _GUID_XAxis
dinput8.lib(dilib2.obj) : error LNK2001: 无法解析的外部符号 _GUID_Key
Debug/sword.exe : fatal error LNK1120: 9 个无法解析的外部命令

而且这种问题是很奇怪的;不过其实并不很复杂。

首先,你大概知道,在使用DX SDK之前,应该在选项里面,把lib和include设置好,不过这并不代表

你的代码在编译的时候会自动应用*.lib(比如说ddraw.lib),你需要在你的DX封装的cpp对应的

header里加上类似的如下几句:

#pragma  once
#pragma  message("FDraw.h --> Linking with ddraw.lib")
#pragma  comment(lib,"ddraw.lib")这几行文字就相当于告诉编译器编译的时候把 ddraw.lib 也编

进去(链接, Link)。

试试看,加上相应的几句,是不是没有什么 error LNK2001 了?


ARPG error LNK2019: 无法解析的外部符号 _DirectDrawCreateEx@16 ,该符号在函数 "int

__cdecl Game_Init(void)" (?Game_Init@@YAHXZ) 中被引用

头文件加入 #pragma comment( lib, "Dxguid.lib")   

ARPG error LNK2001: 无法解析的外部符号 _IID_IDirectDraw7

头文件加入#pragma comment( lib, "ddraw.lib")

VS2005,工具->选项->项目和解决方案->VC++目录。在“显示以下内容的目录”里选择:"库文件",

再添加“C:/Program Files/Microsoft DirectX SDK (August 2006)/Lib/x86”


8. Debug Assertion Failed!
File:f:/dd/vctools/crt_bld/self_x86/crt/src/lseek.c
Line:66
Expression:(fh >= 0 (unsigned)fh < (unsigned)_nhandle)

注释T3DLIB1.CPP 中的这一行
// finally the image data itself
_lseek(file_handle,-(int)(bitmap->bitmapinfoheader.biSizeImage),SEEK_END);

 

 

 

相关文章推荐

WINDOWS游戏编程大师技巧-常见编绎连接错误FAQ

原文链接:http://blog.csdn.net/bfqiwbifj/article/details/5829715 1.无法从“const char [10]”转换为“LPCWSTR” vs6...

WINDOWS游戏编程大师技巧-常见编绎连接错误FAQ

原文来源:http://st251256589.blog.163.com/blog/static/164876449201131101854589/ 1.无法从“const char [10]”...

《Windows游戏编程大师技巧》一、学海无涯

偶然发现了本很棒的游戏编程入门书 - 《Windows游戏编程大师技巧》。说是大师技巧,其实还是很深入浅出的。 它涵盖了Windows图形编程的方方面面,从Win32的Helloworld程序,到G...
  • dc_726
  • dc_726
  • 2012年04月07日 12:06
  • 3501

《Windows游戏编程大师技巧》(第二版)第11章

第三部分:核心游戏编程  第11章 算法、数据结构、内存管理和多线程  第12章 人工智能  第13章 游戏物理  第14章 文字时代  第15章 综合运用:编写游戏!第11章 算法、数据结构、内存管...

Windows游戏编程大师技巧第二版学习笔记之第一章 实验补充

前面记录的一下看书中的重点,编程还是要动手,下面就来动手试试,这里选择VC6.0编译器 这里先来配置游戏编程环境,原书中的dx81sdk_full.exe一共是1百多MB,其实没必要整那么多,看我在...

windows游戏编程大师技巧2学习感悟(1)

我一向是伸手党,只爱看别人的,从来不回复,更不用说自己写了。但是最近的学习经历让我觉得很有必要写出来,一是用来提醒自己以后再碰到类似的问题又忘了解决办法的时候,二是确实的体会到了当遇到困难用尽各种办法...

《Windows游戏编程大师技巧》中关于DirectDraw和创建DirectDraw知识笔记

《Windows游戏编程大师技巧》中关于DirectDraw和创建DirectDraw知识

《windows游戏编程大师技巧》第五章:DirectX基础知识和令人生畏的COM

1、 DirectX组件都是以COM实现的,

《Windows游戏编程大师技巧》(第二版)第1章(上)

第1章 学海无涯"Oh, you want some too?!?"—Hudson, AliensWindows 编程就像是一场由来已久并还在进行着的战争。尽管游戏程序员曾经一度拒绝为Windows平...

《Windows游戏编程大师技巧》第六章:初次邂逅DirectDraw

d
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WINDOWS游戏编程大师技巧-常见编绎连接错误FAQ
举报原因:
原因补充:

(最多只允许输入30个字)