VC6代码移植VS2008的SDK总结,包括OPENGL和DireX还有Cimage 【总结】
VS2008,VISTA系统
--------------------------------------------------------------------------------------------
【1】 有关OPENGL
--------------------------------------------------------------------------------------------
安装了VS2008后,在目录
C:/Program Files/Microsoft SDKs/Windows/v6.0A/include/gl 下:
GLU.h, GL.h, GLAUX.h
在目录
C:/Program Files/Microsoft SDKs/Windows/v6.0A/lib有对应的
OpenGL32.lib
如果需要其他lib库,就必须装SDK了,
我装了nVidiaOPENGL的SDK。
在目录C:/Program Files/NVIDIA Corporation/NVIDIA OpenGL SDK 10/external下有Include文件夹和Lib文件夹
Include:gl/:glut.h, zlib.h, png.h 等几个图像头文件
Lib: glut32.lib, libpng.lib
这样看来,glut.h --> glut32.lib
--------------------------------------------------------
在做项目移植时,如下变化
-------VC6用的库 ------------------------》》》》 ------------- VS2008 --------------------
(1)DirectX8的
dxguid.lib -----------> ---- (same)
d3dx8.lib -----------> d3dx9.lib
ddraw.lib -----------> -----
(2)OPENGL的
opengl32.lib -----------> ----
glu32.lib -----------> X (delete)
glaux.lib -----------> X
----------> glut32.lib
(3)第三方自己开发的IMAGE库
zlib.lib -----------> -----
cimage.lib -----------> ximage.lib (用的CxImage)
jpeg.lib -----------> ----
png.lib -----------> ----
(4) 多媒体库
winMM.lib -----------> ----
----------------------------------------------------------
头文件变化
#include "gl/gl.h" ----------> #include "gl.h"
#include "gl/glu.h" -----------> X
#include "gl/glaux.h" -----------> x
-----------> #include "glut.h"
以上说明
老版本:
glu.h ---> glu32.lib
glaux.h ---> glaux.lib
以上这些都用新版本的
glut.h ----> glut32.lib
来替代了
【注意】glu和glut的区别。
保留核心库和头文件(C:/Program Files/Microsoft SDKs/Windows/v6.0A)
gl.h -----> Opengl32.lib
-----------------------------------------------------------------------------------------
【2】 有关 DirectX
---------------------------------------------------------------------------------------------
VC6老版本用的是DX8,移植到VS2008,我换成DX9
Vista系统其实自带了DX10,还有DX9,但是,如果不装开发包SDK的话
只有头文件d3d9.h和d3d10.h,找不到需要的d3d9x.h
装了之后,
VC6 头文件 ------> VS2008头文件
--------------------------------------------------
d3d8.h ------------> d3d9.h
d3dx8.h ------------> d3dx9.h
本来以为这样改之后会没有问题,没想到出了大问题。原来DX8和DX9的函数根本不一样,
不仅仅是函数名中的8要改成9,其实函数体也有不同,比如参数个数不同。由于我不熟悉
整个程序,所以根本没法移植下去。
比如
LPDIRECT3D8 ----> LPDIRECT3D9
头文件地址:
C:/Program Files/Microsoft SDKs/MicroSoft DirectX SDK (NOV 2008)/include
静态链接库地址LIB,需要 ( dxguild.lib, d3dx9.lib, ddraw.lib )
C:/Program Files/Microsoft SDKs/MicroSoft DirectX SDK (NOV 2008)/Lib/x86
---------------------------------------------------------------------------------------------
【3】CIMAGE的问题。
----------------------------------------------------------------------------------------------
首先,原始代码作者用的CIMAGE的库不知道是从哪里来的。
头文件包含
#include "cimage.h"
我试着用2个办法来解决这个问题。
(1)把它改成 #include "atlimage.h"
谁知道根本不行,很多函数都在ATLIMAGE中找不到,报下列错误:
error C2039: 'ReadFile' : is not a member of 'ATL::CImage'
error C2039: 'Stretch' : is not a member of 'ATL::CImage'
error C2039: 'GetEffWidth' : is not a member of 'ATL::CImage'
error C2039: 'GetDepth' : is not a member of 'ATL::CImage'
error C2039: 'GetRGB' : is not a member of 'ATL::CImage'
(2)用CxImage,这个没办法,试试看
把头文件改成 #include "ximage.h",当然,用这个之前要指定有关lib的位置。
谁知道一样报错找不到函数:
error C2039: 'ReadFile' : is not a member of 'CxImage'
error C2039: 'SaveFile' : is not a member of 'CxImage'
error C2039: 'implementation' : is not a member of 'CxImage'
error C2039: 'GetRawImage' : is not a member of 'CxImage'
error C2661: 'CxImage::Stretch' : no overloaded function takes 9 arguments
对CxImage来说,对应有Load, Save等。
在atlimage时,虽然有SaveFile和Implementation,但是都不是专门用在图像处理的函数。用错了。
总结:很显然,3套图像处理库互不兼容,根本没办法。原来这套代码是2001年左右的,那时候
没有atlimage.h所以,会出现有第3方和MS存在SaveFile这些重叠的函数。
VC6代码移植VS2008的SDK总结,包括OPENGL和DireX还有Cimage 【总结】相关推荐
- VC6迁移到VS2008几个问题——良好的代码,从我做起,从现在开始。
最近.有一个项目开发,需要使用一次项目的代码.只有当项目VC6下编译通过的,在VS2008下不一定编译通过,能编译通过也不一定能链接成功.以下总结一下我在一个VC6项目移植到VS2008中遇到的一些问 ...
- 基于MPI的H.264并行编码代码移植与优化
2010 03 25 基于MPI的H.264并行编码代码移植与优化 范 文 洛阳理工学院计算机信息工程系 洛阳 471023 摘 要 H.264获得出色压缩效果和质量的代价是压缩编码算法复杂度的增加. ...
- 现有代码移植到Metro App
现有代码移植到Metro App 一:工程配置 配置WinRT工程时要注意以下几点: 静态库工程General里的"Windows Store App Support"设成true ...
- 将Linux代码移植到Windows的简单方法
将Linux代码移植到Windows的简单方法 一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如 ...
- 历时 7 天,我把一万行 Scala 代码移植到了 Kotlin 上!
[CSDN编者按]去年,Google 宣布 Kotlin 正式成为 Android 官方开发语言,由此引发了迁移 Kotlin 的一股热潮.在本文中,作者分享了他在七天内把代码从 Scala 移植到 ...
- STM32F103ZE TFT液晶代码移植
TFT液晶移植 介绍 移植 注意 操作 移植好的代码 介绍 最近在学习TFT液晶,然后我用的是正点原子的板子,但是我看不明白正点原子的视频,在B站上看的野火的视频(有投币的,嘿嘿).野火的视频很详细, ...
- 【STM32移植机智云】超详细教程#2ESP8266移植机智云教程‘代码移植’
1.引言 本人购买了一个ESP8266的WiFi模块,想做一个物联网控制小灯的demo. 本文记录了基于机智云平台,移植代码,实现物联网小灯详细操作步骤. 并不是移植步骤很麻烦, 只是文章真的写的极其 ...
- matlab代码移植C语言
介绍一下将matlab代码移植成C语言的过程.利用matlab中自带的matlab转C/C++的工具,以一个具体的实例讲解具体的步骤,以及对过程中可能会出现的问题提供了解决方案. 目录 一.matla ...
- Socket 编程 windows到Linux代码移植遇到的问题
Socket 编程 windows到Linux代码移植遇到的问题 1.一些常用函数的移植 http://www.vckbase.com/document/viewdoc/?id=1586 2.网络 - ...
最新文章
- Only tensors or tuples of tensors can be output from traced functions
- erlang r19里面的mnesia_ext
- 修改了系统时间后,myeclipse 和tomcat下的代码不同步了
- react 父子传值_React父子组件间的传值
- 用VScode配置Python开发环境引用
- LeetCode之寻找峰值
- 如何破解c语言锁机程序,【三菱PLC案例】定期锁机程序控制,巧妙解除密码技巧...
- html5 手机uc浏览器 复制链接,H5手机移动端调起浏览器(qq浏览器,uc浏览器)自带分享功能实例...
- CSP 201712-3 Crontab(100)
- 超实用,这是我见过最全面的python入门教程,高中生不要错过
- 签到方式出“新招”!人脸识别考勤系统
- 如何注册腾讯云账号(图文教程)?
- Font and PDF
- 群晖服务器216j增加硬盘,群晖(Synology)NAS 升级硬盘扩展空间小记
- 【数据科学】01 数据科学概述
- 巴比特 | 元宇宙每日必读:中国银行公布元宇宙支付相关专利,阿里申请多个淘宝元宇宙商标,元宇宙商标、专利竞争加速?...
- pap认证失败_PPP PAP(CHAP)认证
- Qt编程技巧 延时
- Samsung MDM partners
- python判断手机号码是否正确_Python程序验证输入的电话号码是否正确