【转】如果作者介意,请及时转告并在24小时内删除,谢谢.
随机过程实验的C++工程是运行在VC++6.0平台的,而我的机子上是VS2010,貌似VC++6.0在WIN7-64bit机上很难安装成功,就不想折腾,直接就用VS2010吧,虽然知道肯定不会完全向下兼容,最后终于解决,备忘吧。
1.缺失dll文件的的问题
这个还是一个一个去下载吧,然后将其放在SysWOW64,因为看到在编译链接时就是在这个目录下寻找dll的,虽然一般dll也会放在system32目录下,是不是system32下放的是32位应用程序需要的dll文件,而SysWOW64下是64位的,在网上看到说安装dll后需要在运行中运行regsvr32 msvcrtd.dll(这里以msvcrtd.dll为例)注册,但貌似注册不怎么成功,不注册也可以,只放在相应目录下即可。
2.语法不兼容的问题
这些也应该很常见,根据报错在网上找吧
我的问题是sqrt这个函数的问题
这是VS2010对数据类型的检查更加严格
在VS2010中sqrt()至少有:
double sqrt(double x) long double sqrt (long double x);
如果sqrt()的参数不是double ,long double,如果不显式强制类型转换,sqrt()就不知道该强制转换为哪种数据类型,就会报错,编译不通过
sqrt()函数要求参数类型是double,强制转换成double。 例如:sqrt((double)a);
还有一个关于MFC的问题:
error C2440: “static_cast”: 无法从“UINT (__thiscall CScope::* )(CPoint)”
根据网上的答案,要修改源程序中和MFC有关的两处:
afx_msg UINT OnNcHitTest(CPoint point);
UINT CTestDlg::OnNcHitTest(CPoint point)
=>
afx_msg LRESULT OnNcHitTest(CPoint point); //.h
LRESULT CTestDlg::OnNcHitTest(CPoint point) //.cpp
这些问题在网上都应该可以找到答案,然后尝试看能否解决
3.sdf文件和ipch文件夹的处理
VS2010打开某个工程 ,转换成功之后,在工程目录看见一个sdf文件和一个ipch文件夹,都超大(起码几十M),一个几百k 的工程,结果用vs打开过后变成了两百多M,大家也许发现了,visual studio 2010 中新建一个项目会同时建立一个ipch目录与sdf文件,即使你删掉它,再次打开工程时还是会重新建立。动辄30、50M的容量让我们心里很不爽。其实这是2010的一个新功能,与智能提示,错误提示,代码恢复、团队本地仓库等等息息相关的东西。如果大家觉得很不爽可以关掉它。Tools —— Options —— Text Editor —— C/C++ —— Advanced ——Disable Database 设置为True,默认为false。这样,你关闭visual后删掉工程目录下的ipch与sdf就不会再产生了
还有就是一些关于配置信息的可以按快捷键Alt+F7来看该工程的属性
- 上一篇:应该知道的Linux技巧