网狐2003转2013遇到的坑集合

来源:互联网 发布:飞鱼网络直播 编辑:程序博客网 时间:2024/05/20 23:40

所有坑以及解决方案集合!

1.提示无法饮用到DX9.H  下载DXSDK_Mar09.exe 安装后在项目中引用  

1)随便打开一个项目,然后点击菜单中的 视图->其他窗口->属性管理器
2)打开属性管理器,点击项目前的箭头,展开项目,找到debug或者release下面的Microsoft.Cpp.Win32.user这个属性
3) 双击会出现一个跟在项目上右键属性一样的窗口,修改里面的“VC++目录”就是修改了全局的
C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include
C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib
默认将这两个添加
   
2.将所有预编译的宏都改为
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0501
#endif


3.修改属性->常规下面的目标文件名     修改成连接器->输出下名称


4.无法打开包括文件:“GL/glaux.h”: No such file or directory的解决 
上网上下载一个
或者去vs2003上面找  默认目录在GlAux.lib 和GlAux.h  拷贝到2013目录下
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib  and lnclude这个两个目录下
#include <GL/GLU.h>  修改为  #include <GLAux.h>


5.error LNK2026: 模块对于 SAFESEH 映像是不安全的
1)打开该项目的“属性页”对话框。
2)单击“链接器”文件夹。
3)单击“命令行”属性页。
4)将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用


6.未声明的标识符问题     2013作用域在花括号内  2003作用域是声明了i
以及以下
//替换逻辑 szResult[i] = 0;
if (nLen  >= 0)
{
szResult[nLen] = 0;
}
其他地方需要注意原逻辑  加个开关变量控制  来解决2003和2013不一样的问题、


7.fatal error C1083: 无法打开包括文件: “Winable.h”: No such file or directory
#include <winable.h >换为
#include <WinUser.h>


8.游戏引擎\directshow\ctlutil.h(278): error C4430: 缺少类型说明符 - 假定为 int。注意:  C++ 不支持默认 int
   //operator=(LONG);
 COARefTime& operator=(LONG);


9.gameframeviewd3d.cpp(260): error C4430: 缺少类型说明符 - 假定为 int。注意:  C++ 不支持默认没有int
加个int


10.C:\Users\cary\AppData\Local\Temp\lnk{64C84D11-9D5B-4E36-9FBF-7CBF293CB452}.tmp : manifest authoring error c1010001: Values of attribute "level" not equal in different manifest snippets.
LINK : fatal error LNK1327: 运行 mt.exe 期间出错
  VS2008下面这种做法就不对,因为VS2008已经能生成一个.manifest文件。而且实现提升权限功能在VS2008下面相当简单:Properties->Configuration Properties->Linker->Manifest File
修改运行级别  连接器下面的权限  改成admin的


11.有时候会提示找不到lib    编译两遍就找到了

原创粉丝点击