class CMemDC : public CDC重定义了

zhangwuji154 2010-05-14 09:31:09
我下了个开源控件,里面有个类
class CMemDC : public CDC
但是Microsoft Visual Studio.Net(VS2008)里已经有了这个类,所以重定义了,
但是,它官网有个2.27最新版,据说是为了支持2008/2010,我下载看了,那个
class CMemDC : public CDC类还叫这个名字,我想,怎么可能是支持2008的呢
我新建了2008工程,然后把2.27的源文件拷进去,然后编译,竟然通过了.而且使用功能正常,说明
是编译了那些个文件的.

但我也没想它是怎么做到的,想想可能是头文件#ifdef或#pragma once那儿的关系吧,
然后我再把这些文件拷到我做的项目里,编译,竟然又报class CMemDC : public CDC重定义了,郁闷,
到底这两个的差异是怎么产生的啊,
网上人说了,把class CMemDC : public CDC的名字全改掉,我觉得这种麻烦,就想知道,我的Test工程为什么可以
...全文
702 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
道法天然 2011-11-13
  • 打赏
  • 举报
回复
有好些东西不明白。。。继续慢慢查!!
zhangwuji154 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oldn_cc_bird 的回复:]

即然2008下有了,你就找到2008下的memdc的定义,这里你还会找到一个宏定义
,类似于#define __MEMDC__
找到了这个,你就可以改一下你的memdc的.h和cpp了
#ifndef __MEMDC__
class memdc
{...}
#endif
[/Quote]
它2.27版本就是这么干的,
我为什么在自己的工程编辑报错呢,因为VS的问题,我clean rebuild了一下,就行了^
dinjay 2010-05-14
  • 打赏
  • 举报
回复
mark
oldn123 2010-05-14
  • 打赏
  • 举报
回复
即然2008下有了,你就找到2008下的memdc的定义,这里你还会找到一个宏定义
,类似于#define __MEMDC__
找到了这个,你就可以改一下你的memdc的.h和cpp了
#ifndef __MEMDC__
class memdc
{...}
#endif

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧