CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

CMap<CString, CString&, CString, CString&> 为什么会错?

楼主iamfancy(边城狂人) James Fancy ()2001-07-24 12:04:03 在 VC/MFC / 基础类 提问

我定义的   CMap<CString,   CString&,   CString,   CString&>  
  为什么会有错呢?  
  哪位大侠知道原因?   问题点数:20、回复次数:16Top

1 楼cloudshadow1(小强)回复于 2001-07-24 12:08:11 得分 0

你要#include   <afxtempl.h>     Top

2 楼luckboycjw(编程浪子)回复于 2001-07-24 12:14:17 得分 0

可能是上述错误的!Top

3 楼c_z_y(用力)回复于 2001-07-24 12:34:35 得分 2

为什么不用CMapStringToString?Top

4 楼iamfancy(边城狂人) James Fancy ()回复于 2001-07-24 13:41:36 得分 0

放心,所有头文件我都已经包括了的。我也知道用   CMapStringToString,但我现在只想知道   CMap<CString,   CString&,   CString,   CString&>   为什么要出错?Top

5 楼nustchen(壁虎)回复于 2001-07-24 15:00:18 得分 0

该成CMap<   CString,   LPCTSTR...   >  
  效果一样Top

6 楼swxh(中重)回复于 2001-07-24 15:28:18 得分 0

什莫错?贴出来!!  
  Top

7 楼iamfancy(边城狂人) James Fancy ()回复于 2001-07-25 11:52:40 得分 0

--------------------Configuration:   Test   -   Win32   Debug--------------------  
  Compiling...  
  StdAfx.cpp  
  Compiling...  
  Test.cpp  
  c:\program   files\microsoft   visual   studio\vc98\mfc\include\afxtempl.h(129)   :   error   C2440:   'type   cast'   :   cannot   convert   from   'class   CString'   to   'unsigned   long'  
                  No   user-defined-conversion   operator   available   that   can   perform   this   conversion,   or   the   operator   cannot   be   called  
                  c:\program   files\microsoft   visual   studio\vc98\mfc\include\afxtempl.h(1324)   :   see   reference   to   function   template   instantiation   'unsigned   int   __stdcall   HashKey(class   CString   &)'   being   compiled  
  TestDlg.cpp  
  c:\program   files\microsoft   visual   studio\vc98\mfc\include\afxtempl.h(129)   :   error   C2440:   'type   cast'   :   cannot   convert   from   'class   CString'   to   'unsigned   long'  
                  No   user-defined-conversion   operator   available   that   can   perform   this   conversion,   or   the   operator   cannot   be   called  
                  c:\program   files\microsoft   visual   studio\vc98\mfc\include\afxtempl.h(1324)   :   see   reference   to   function   template   instantiation   'unsigned   int   __stdcall   HashKey(class   CString   &)'   being   compiled  
  Generating   Code...  
  Error   executing   cl.exe.  
   
  Test.exe   -   2   error(s),   0   warning(s)  
  Top

8 楼MSVCer(家宝)回复于 2001-07-25 12:31:38 得分 0

人家MFC定义的CMapStringToString可是实实在在的类,而不是模板啊,人家都这样定义一定有原因吧,看看MFC源码,也许有点帮助Top

9 楼JJONY()回复于 2001-07-25 13:01:31 得分 3

 
  CMap的定义是:  
  template<   class   KEY,   class   ARG_KEY,   class   VALUE,   class   ARG_VALUE   >class   CMap    
  可能Key必须是DWORD,int,LPTSTR...之类的简单类型,而不能是一个对象,如CString。虽说Key是一个class,但实际只能是一个数值。Top

10 楼wobuhui()回复于 2001-07-25 13:05:55 得分 0

复杂Top

11 楼iamfancy(边城狂人) James Fancy ()回复于 2001-07-27 08:58:48 得分 0

但是从理论上来说,CMap   的定义中各项都是   class,我就应该可以定义为   class   才对啊?  
  什么地方有相关的例子和资料,帮我找找吧!MSDN   中的例子我看过了,太简单,只用了一个   DWORD   到   String   的   Map。Top

12 楼_STLer(VC++)回复于 2001-07-27 09:04:37 得分 5

编译器试图进行'class   CString'   to   'unsigned   long',可能key只支持内建类别,Top

13 楼iamfancy(边城狂人) James Fancy ()回复于 2001-07-27 10:21:58 得分 0

恕我无知了,什么是内建类别啊?Top

14 楼dengguoyuggggg(dengguoyuggggg)回复于 2001-07-27 11:05:52 得分 10

Map要用key来产生哈希表Top

15 楼dengguoyuggggg(dengguoyuggggg)回复于 2001-07-27 11:08:39 得分 0

CString没有生成哈希表的函数,你得自己重载  
  unsigned   int   __stdcall   HashKey(class   CString   &)Top

16 楼iamfancy(边城狂人) James Fancy ()回复于 2001-07-27 16:23:06 得分 0

可不可以告诉我哪些类型有生成哈希表的函数啊?Top

相关问题

  • 为什么会错呢????????????????????????????????????????????????????
  • 菜鸟学飞:为什么会错了?
  • 这个查询为什么会错?
  • 简单问题,为什么会错误?
  • 简单脚本,为什么会错?
  • 为什么会错呀?快来帮我。
  • 为什么会错呀?快来帮我。
  • 这个sql语句为什么会错?
  • 这段代码为什么会错!(菜鸟的问题)
  • SQL 语句这样写为什么会错

关键词

  • mfc
  • visual
  • vc
  • program
  • microsoft
  • cmap
  • afxtempl
  • cstring
  • 定义
  • conversion

得分解答快速导航

  • 帖主:iamfancy
  • c_z_y
  • JJONY
  • _STLer
  • dengguoyuggggg

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo