Visual Studio2003旧工程文件不能转化问题的解决

类别:编程语言 点击:0 评论:0 推荐:

Visual Studio.net 2003应该说是目前windows平台上最好用的开发平台之一了。但任何软件的升级过程中总会有遇到问题。

当我们从旧的Vs 6.0升级时,由于工程文件格式的转变,工程文件必须经过一个转化的过程。可是vs.net2003却有一个bug,给很多人带来了麻烦。

发现问题

使用ptypes库时,只找到source,要自己编译成lib。看看文件夹结构,有一个win32目录里面有dsp(vs6.0的工程文件),于是欣然打开并选择转换可是遇到错误“引项目文件已损坏而无法打开”,FT。

寻找问题:

怎么找,正在怀疑为RPWT,偶然中习惯性的用记事本打开(见文末)发现出现很多奇怪的字符(方块状)。这些字符在打开

UNIX/LINUX下的文件时也看到过,莫非……

解决问题
LINUX/UNIX下的换行符是0x0A,而windows下的是0x0D0A,问题可能出在这里。
动手验证一下猜想是否正确。我们自己写一个转换的程序(kow~,用不着吧)
#include <fstream>
#include <iostream>
using namespace std;

int main(int argc,char** argv){
    if (argc !=2)exit(1);
    ifstream ifs(argv[1],ios::binary);
    char a;
    while(ifs >> a){
        if(static_cast<int>(a) == 0x0A)cout << static_cast<char>(0x0D)
                                      << static_cast<char>(0x0A);
        cout << a;
    }
}

使用方法:程序名  dsp文件名 > 新的dsp文件名
然后重新打开、转换,哈哈成功了。

后记:

嗬嗬,解决问题有时真的是偶然的灵感。

 

PS:

我有个习惯,就是在右键中添加一些常用功能,我的注册表文件如下:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\(&1)打开命令行]
@="(&1)打开命令行"

[HKEY_CLASSES_ROOT\*\shell\(&1)打开命令行\command]
@="cmd"

[HKEY_CLASSES_ROOT\*\shell\(&2)命令行执行]
@="(&2)命令行执行"

[HKEY_CLASSES_ROOT\*\shell\(&2)命令行执行\command]
@="cmd /c  D:\\smalltools\\runwitharg.cmd %1"

[HKEY_CLASSES_ROOT\*\shell\(&3)记事本编辑]
@="(&3)记事本编辑"

[HKEY_CLASSES_ROOT\*\shell\(&3)记事本编辑\command]
@="notepad %1"

[HKEY_CLASSES_ROOT\*\shell\(&4)写字板编辑]
@="(&4)写字板编辑"

[HKEY_CLASSES_ROOT\*\shell\(&4)写字板编辑\command]
@="C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe  \"%1\""

[HKEY_CLASSES_ROOT\*\shell\(&5)用HexWorks编辑]
@="(&5)用HexWorks编辑"

[HKEY_CLASSES_ROOT\*\shell\(&5)用HexWorks编辑\command]
@="D:\\Hex Workshop 3.0\\hworks32.exe \"%1\""

本文地址:http://com.8s8s.com/it/it28469.htm