碰到个问题

Posted on 2008-03-27 17:16 RichardHe 阅读(4333) 评论(2)  编辑 收藏 引用
#include <iostream>
#include <string>
#include <map>
#include <hash_map>

using namespace std;
using namespace stdext;
int
 Function()
{
    typedef stdext::hash_map
<std::stringint> MyHashMap;
    typedef MyHashMap::iterator Myiter;
    MyHashMap theHashMap;
    Myiter      iter;
    theHashMap.insert(std::pair
<std::string,int>("name",1));
    theHashMap.insert(MyHashMap::value_type(
"heyaowu",2));

    iter 
= theHashMap.find("name");
    
if (iter == theHashMap.end())
    {
        
return 1;
    }
    cout 
<<iter->second<< endl;
}
下午遇到个奇怪的问题,如上所示:
就是在新建的MFC单文档中没有错,但是在基于对话框的里面就有错了,弄了半天也不知道为什么?哪位高手赐教下?不知道是不是我的VS2003安装的有问题还是怎么回事,很奇怪..
错误如下:
Hash_MapDlg.cpp
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2365: “new” : 重定义;以前的定义是“成员函数”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2491: “new” : 不允许 dllimport 数据 的定义
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2078: 初始值设定项太多
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2440: “初始化” : 无法从“int”转换为“void *”
        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2143: 语法错误 : 缺少“;”(在“(”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2226: 语法错误 : 意外的“size_t”类型
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(30) : error C2059: 语法错误 : “)”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2365: “new” : 重定义;以前的定义是“成员函数”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2491: “new” : 不允许 dllimport 数据 的定义
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2078: 初始值设定项太多
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2440: “初始化” : 无法从“int”转换为“void *”
        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2143: 语法错误 : 缺少“;”(在“[”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C3409: 不允许空属性块
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : warning C4091: “” : 没有声明变量时忽略“__w64 unsigned int”的左侧
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : error C2143: 语法错误 : 缺少“;”(在“,”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : error C2059: 语法错误 : “,”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : fatal error C1004: 遇到意外的文件结束

Feedback

# re: 碰到个问题  回复  更多评论   

2008-03-27 17:30 by RichardHe
刚才在网上终于查到是怎么回事了.真是晕.原来我的头文件放在了宏后面.应该放
#include <iostream>
#include <string>
#include <map>
#include <hash_map>

using namespace std;
using namespace stdext;

#ifdef _DEBUG
#define new DEBUG_NEW
#endif
而不要如下放置:
#ifdef _DEBUG
#define new DEBUG_NEW
#endif

#include <iostream>
#include <string>
#include <map>
#include <hash_map>

using namespace std;
using namespace stdext;

# re: 碰到个问题  回复  更多评论   

2009-09-24 21:48 by HHH
正在编译...
mytestDlg.cpp
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2365: “new” : 重定义;以前的定义是“成员函数”
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2491: “new” : 不允许 dllimport 数据 的定义
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2078: 初始值设定项太多
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2440: “初始化” : 无法从“int”转换为“void *”
从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2143: 语法错误 : 缺少“;”(在“(”的前面)
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2226: 语法错误 : 意外的“size_t”类型
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(30) : error C2059: 语法错误 : “)”
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2365: “new” : 重定义;以前的定义是“成员函数”
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2491: “new” : 不允许 dllimport 数据 的定义
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2078: 初始值设定项太多
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2440: “初始化” : 无法从“int”转换为“void *”
从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2143: 语法错误 : 缺少“;”(在“[”的前面)
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C3409: 不允许空属性块
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : warning C4091: “” : 没有声明变量时忽略“__w64 unsigned int”的左侧
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : error C2143: 语法错误 : 缺少“;”(在“,”的前面)
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : error C2059: 语法错误 : “,”
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : fatal error C1004: 遇到意外的文件结束
mytest.cpp
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2365: “new” : 重定义;以前的定义是“成员函数”
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2491: “new” : 不允许 dllimport 数据 的定义
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2078: 初始值设定项太多
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2440: “初始化” : 无法从“int”转换为“void *”
从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2143: 语法错误 : 缺少“;”(在“(”的前面)
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(29) : error C2226: 语法错误 : 意外的“size_t”类型
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(30) : error C2059: 语法错误 : “)”
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2365: “new” : 重定义;以前的定义是“成员函数”
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2491: “new” : 不允许 dllimport 数据 的定义
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2078: 初始值设定项太多
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2440: “初始化” : 无法从“int”转换为“void *”
从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C2143: 语法错误 : 缺少“;”(在“[”的前面)
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(33) : error C3409: 不允许空属性块
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : warning C4091: “” : 没有声明变量时忽略“__w64 unsigned int”的左侧
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : error C2143: 语法错误 : 缺少“;”(在“,”的前面)
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : error C2059: 语法错误 : “,”
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(34) : fatal error C1004: 遇到意外的文件结束
正在生成代码...
结果 生成日志保存在“file://c:\Program Files\OpenCV\project\mytest\mytest\Debug\BuildLog.htm”中
mytest - 32 错误,6 警告

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 94, comments - 138, trackbacks - 0, articles - 94

Copyright © RichardHe