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 【总结】相关推荐

  1. VC6迁移到VS2008几个问题——良好的代码,从我做起,从现在开始。

    最近.有一个项目开发,需要使用一次项目的代码.只有当项目VC6下编译通过的,在VS2008下不一定编译通过,能编译通过也不一定能链接成功.以下总结一下我在一个VC6项目移植到VS2008中遇到的一些问 ...

  2. 基于MPI的H.264并行编码代码移植与优化

    2010 03 25 基于MPI的H.264并行编码代码移植与优化 范 文 洛阳理工学院计算机信息工程系 洛阳 471023 摘 要 H.264获得出色压缩效果和质量的代价是压缩编码算法复杂度的增加. ...

  3. 现有代码移植到Metro App

    现有代码移植到Metro App 一:工程配置 配置WinRT工程时要注意以下几点: 静态库工程General里的"Windows Store App Support"设成true ...

  4. 将Linux代码移植到Windows的简单方法

    将Linux代码移植到Windows的简单方法 一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如 ...

  5. 历时 7 天,我把一万行 Scala 代码移植到了 Kotlin 上!

    [CSDN编者按]去年,Google 宣布 Kotlin 正式成为 Android 官方开发语言,由此引发了迁移 Kotlin 的一股热潮.在本文中,作者分享了他在七天内把代码从 Scala 移植到 ...

  6. STM32F103ZE TFT液晶代码移植

    TFT液晶移植 介绍 移植 注意 操作 移植好的代码 介绍 最近在学习TFT液晶,然后我用的是正点原子的板子,但是我看不明白正点原子的视频,在B站上看的野火的视频(有投币的,嘿嘿).野火的视频很详细, ...

  7. 【STM32移植机智云】超详细教程#2ESP8266移植机智云教程‘代码移植’

    1.引言 本人购买了一个ESP8266的WiFi模块,想做一个物联网控制小灯的demo. 本文记录了基于机智云平台,移植代码,实现物联网小灯详细操作步骤. 并不是移植步骤很麻烦, 只是文章真的写的极其 ...

  8. matlab代码移植C语言

    介绍一下将matlab代码移植成C语言的过程.利用matlab中自带的matlab转C/C++的工具,以一个具体的实例讲解具体的步骤,以及对过程中可能会出现的问题提供了解决方案. 目录 一.matla ...

  9. Socket 编程 windows到Linux代码移植遇到的问题

    Socket 编程 windows到Linux代码移植遇到的问题 1.一些常用函数的移植 http://www.vckbase.com/document/viewdoc/?id=1586 2.网络 - ...

最新文章

  1. Only tensors or tuples of tensors can be output from traced functions
  2. erlang r19里面的mnesia_ext
  3. 修改了系统时间后,myeclipse 和tomcat下的代码不同步了
  4. react 父子传值_React父子组件间的传值
  5. 用VScode配置Python开发环境引用
  6. LeetCode之寻找峰值
  7. 如何破解c语言锁机程序,【三菱PLC案例】定期锁机程序控制,巧妙解除密码技巧...
  8. html5 手机uc浏览器 复制链接,H5手机移动端调起浏览器(qq浏览器,uc浏览器)自带分享功能实例...
  9. CSP 201712-3 Crontab(100)
  10. 超实用,这是我见过最全面的python入门教程,高中生不要错过
  11. 签到方式出“新招”!人脸识别考勤系统
  12. 如何注册腾讯云账号(图文教程)?
  13. Font and PDF
  14. 群晖服务器216j增加硬盘,群晖(Synology)NAS 升级硬盘扩展空间小记
  15. 【数据科学】01 数据科学概述
  16. 巴比特 | 元宇宙每日必读:中国银行公布元宇宙支付相关专利,阿里申请多个淘宝元宇宙商标,元宇宙商标、专利竞争加速?...
  17. pap认证失败_PPP PAP(CHAP)认证
  18. Qt编程技巧 延时
  19. Samsung MDM partners
  20. python判断手机号码是否正确_Python程序验证输入的电话号码是否正确

热门文章

  1. 富士康员工的逆袭之路,从月薪4K到现在月入1W+,是如何做到的?
  2. 2021 年 MathorCup 高校数学建模挑战赛——大数据竞赛B题
  3. 数据库系统概论 第四章课后习题(部分)
  4. Latex 常用括号类表达式
  5. 别样肉客宣布进军全新品类 在华推出两款别样猪肉肉酱产品
  6. 彻底删除软件,删除注册列表信息
  7. python实现流媒体相关示例
  8. 状态寄存器传送指令 —— 访问(读写)CPSR寄存器
  9. 2020年移动发展趋势
  10. Enter实现Tab键的功能