原来使用VS2003创建的工程在VS2005下编译无法通过。
据说通过在VS2005中加入几个宏就可以编译VS2003的代码,我想问问加入哪几个宏可以实现这样要求。

解决方案 »

  1.   

    一般的错误我改了。
    另外几个我找找再贴上来:
    如下是一个,但我在文件中并未找到这个函数 ConvertStringToBSTR (该部分程序我不太了解)
      
    error LNK2019: 无法解析的外部符号 "wchar_t * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPA_WPBD@Z),该符号在函数 "public: __thiscall _bstr_t::Data_t::Data_t(char const *)" (??0Data_t@_bstr_t@@QAE@PBD@Z) 中被引用
      

  2.   

    另一错误情况如下:class CInPlaceCombo : public CComboBox
    {
        public:...
        private:
            operator = (CInPlaceCombo) {} // 错误如下:error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
    }这个不会改,对这东西一知半解。
      

  3.   

    error LNK2019: 无法解析的外部符号 "wchar_t * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPA_WPBD@Z),该符号在函数 "public: __thiscall _bstr_t::Data_t::Data_t(char const *)" (??0Data_t@_bstr_t@@QAE@PBD@Z) 中被引用这个问题可以通过改工程设置解决
    Configuration Properties->C/C++->Language
    Treat wchar_t as Built-in Type = No
      

  4.   

    operator = (CInPlaceCombo) {} // 错误如下:error C4430: 缺少类型说明符 
    函数定义错误,没有定义返回值类型,赋值操作必须传入只读的引用!
    改为
    CInPlaceCombo& operator=(const CInPlaceCombo& a) { return *this; }
      

  5.   

    太谢谢了。
    但是想问一下,将wchar_t视为内置类型有什么作用?
      

  6.   

    对于第二个问题我改成了
     CInPlaceEdit& operator=(const CInPlaceEdit& a) {}
    后通过
      

  7.   

    将wchar_t视为内置类型有什么作用?
    编译器可以对wchar_t做类型检查,否则wchar_t只是一个简单的typedef.
    CInPlaceEdit& operator=(const CInPlaceEdit& a) {}
    你申明了返回类型,却没有在实现中提供返回值,是不对的。
    如果不希望这个函数被调用,可以不加{}