vc6中向vs2010迁移的几个问题
vc6版本支持的库编译:CJ60lib
1. 用vs2010打开CJ60库的源码的dsw,强制打开
(1)设置项目属性的语言
因为,如果代码字符的编码集不一样,则会出现函数冲定义,参数冲突等问题,这可以通过修改项目属性可以修改。
因为VS2010默认示宽字符,所以,编译要从VC6(默认窄字符),要修改项目属性为不使用宽字符。

2. 编译:项目,方式如下:

(1)“编译”,出现一下问题:
![]()
定位文件,做一下修改
(2)再次build only
2.1
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
双击提示,打开文件,然后保存即可
2.2
error C2065: “p”: 未声明的标识符
error C2065: “i”: 未声明的标识符
是因为vs2010更遵守C++标准,临时变量已经修正,需要把for(),以及if()括号中的局部变量,调制for或者if之前定义即可。
2.3
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
添加 int 的类型
2.4
一大堆的重定义问题,如下:
error C2011: “tagSFBS_FLAGS”:“enum”类型重定义
这是因为, shlapi.h中的代码被重新定义了,ATL在定义前会判断一下是否已经定义,而CJLIB库则没有判定,所以,只需要针对CJlib库源文件中的shlwapi.h包含注释掉。,一共有两处:
D:\TOOL3RDPART\CJ60源码\著名界面库cj60lib的源程序\Include\ModulVer.h(12):#include <shlwapi.h>
D:\TOOL3RDPART\CJ60源码\著名界面库cj60lib的源程序\Include\ShellTree.h(11):#include <Shlwapi.h>只需要再引用出,将该文件注释掉
//#include <Shlwapi.h>
经过上述步骤的解决,则问题解决了一大部分:
2.5
1>d:\tool3rdpart\cj60源码\著名界面库cj60lib的源程序\cj60lib\cjcontrolbar.cpp(155): error C2440: “static_cast”: 无法从“UINT (__thiscall CCJControlBar::* )(CPoint)”转换为“LRESULT (__thiscall CWnd::* )(CPoint)”从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast
定位到ON_WM_NCHITTEST(),即消息响应 函数返回值类型不匹配,这是因为VS2010以及VC6构造是不一样的。应该把
vc6的INT改为VS2010支持的LRESULT,因为打开问题消息响应,可以看到返回的类型是:
定位问题的相应函数:
在CJlib源码中修改如下:
主要有两个文件:
cj60lib\cjsizedockbar.cpp(89
cj60lib\cjcontrolbar.cpp(155)
2.6
cjpagerctrl.cpp(75): error C2440: “static_cast”: 无法从“BOOL (__thiscall CCJPagerCtrl::* )(NMPGSCROLL *,LRESULT *)”转换为“BOOL (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)”
1> 在匹配目标类型的范围内没有具有该名称的函数可以看出,VC6支持的是参数类型:NMPGSCROLL,而VS2010支持的参数是NMHDR,所以可以在CJlib修改源文件如下,统一参数不一致的问题。
修改为VS2010支持的类型:
即要修改实现,又要修改声明。
解决以上问题,则可以输出生成的dll文件
如果以debug编译,则输出d(debug)版本的库
如果以release编译,则输出release版本。
注意,release,同样要修改项目属性语言为:不支持款字符。

end;
vc6中向vs2010迁移的几个问题的更多相关文章
- vc6中向vs2010迁移的几个问题(2)
1. 库文件的迁移 参考:http://www.cnblogs.com/icmzn/p/6724969.html 2. 其他项目中的可能遇到的问题: 2.1 无法打开包括文件:“fstream.h”: ...
- vc6.0 PK vs2010
从VC++6.0不足看VisualC++2010新特性 说起VC,有人想到维生素C(维C),有人想到风险投资(venture capital), 程序员们尤其是做底层开发的程序员或老程序员们第一感觉肯 ...
- 如何将Eclipse中的项目迁移到Android Studio 中
如何将Eclipse中的项目迁移到Android Studio 中 如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的 ...
- 在Entity Framework 7中进行数据迁移
(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注.) 题记:虽然EF7重新设计了Entity Framework,不过也还是能够支持数据迁移的. Entity Fra ...
- 在VC6中使用ogre进行游戏开发
微软公司开发的visual c++6.0堪称史上最易用.最成熟的开发工具.vc6以其小巧.轻便赢得了程序员的喜爱,以至于在VS大行其道的时代,很多程序员仍然使用vc6作为开发工具,vc6的欢迎性可见一 ...
- VC6中创建Qt工程的创建
文章来源:http://blog.sina.com.cn/s/blog_64d015c10100sf1o.html 本文主要介绍怎么创建可以在VC6中编译的QT工程.本文所采用环境为VC++6.0+Q ...
- laravel中migration 数据迁移
简介 数据库迁移就像是数据库的版本控制,可以让你的团队轻松修改并共享应用程序的数据库结构.迁移通常与 Laravel 的数据库结构生成器配合使用,让你轻松地构建数据库结构.如果你曾经试过让同事手动在数 ...
- 20.1翻译系列:EF 6中自动数据迁移技术【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/automated-migration-in-code-first.aspx EF 6 ...
- 20.翻译系列:Code-First中的数据库迁移技术【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/migration-in-code-first.aspx EF 6 Code-First ...
随机推荐
- js 逻辑运算符
两个逻辑运算符的操作顺序在自己的脑海里一直理不清,用js做了个实验 <script type="text/javascript"> if(false && ...
- BZOJ1912或洛谷3629 [APIO2010]巡逻
一道树的直径 BZOJ原题链接 洛谷原题链接 显然在原图上路线的总长为\(2(n-1)\). 添加第一条边时,显然会形成一个环,而这条环上的所有边全部只需要走一遍.所以为了使添加的边的贡献最大化,我们 ...
- 52ABP视频学习
https://study.163.com/course/courseMain.htm?courseId=1005208064 网易视频 https://www.52abp.com/ReadWiki/ ...
- centos 6.5 配置ssh免登录
生成密匙: ssh-keygen -t rsa 会生成 id_rsa id_rsa.pub id_rsa:私匙 id_rsa.pub:公匙 配置当前机器免登录: cp id_rsa.pub auth ...
- IOS初级:UIAlertController
- (IBAction)signOutAction:(id)sender { //初始化,StyleActionSheet是对话框的样式 UIAlertController *alert = [UIA ...
- android windows的一些item属性
<item name="android:windowFrame">@null</item> :Dialog的windowFrame框为无 <item ...
- ECLIPSE使用HG插件去上载 GOOGLE.CODE下的代码
ECLIPSE使用HG插件去上载 GOOGLE.CODE下的代码 www.MyException.Cn 发布于:2012-09-10 22:20:12 浏览:112次 0 ECLIPSE使 ...
- POJ-3252 Avenger
题意:在区间中,他们化成2进制的数的0的个数大于等于1的数有多少个. 思路:我们需要记录上一次0和1的个数,此外我们还要特别注意一下前导0. 如果前面全是0的时候我们就要注意下一位是不是还是0,如果一 ...
- unity3DGI
Realtime GI,实时全局光照, 1.构成 : 可实时更新的lightmap + 可实时更新的光照探头(light probe)+ 可实时更新的cubemap(Reflection probe) ...
- hdu-1042(大数+万进制)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 参考文章:https://blog.csdn.net/tigerisland45/article ...











