Flash是大家都知道的可实现矢量绘图、动画制作等等功能的ActiveX控件,安装目录一般为 C:\Windows\System32\Macromed\Flash\Flash64_11_3_300_257.ocx.
   
   我想用C++来实现Flash这样的ActiveX控件,最好不要使用MFC和ATL,谁能给个思路或例子源码,小弟万分感谢!

解决方案 »

  1.   

    用C/C++直接编写太麻烦了,还是用个框架吧,其实ATL很好的。
      

  2.   

      MFC和ATL使用过,不想用的原因如下:  一、其实微软自家出的编程组件、工具、方法,例如UI控件、窗口自绘等,微软自己都不用,看看MSN就知道,微软N年前就在使用DirectUI技术,这已经不是什么新闻了。  二、恕我孤陋寡闻,不知道哪个微软的商业软件是用MFC写的。  三、Dumpbin或Depency一下Flash ActiveX控件,你就知道Flash并没有MFC和ATL库  综上三点,我想做的是一个高质量的商业软件,请高手给个思路吧,万分感谢!
      

  3.   

    高质量软件跟ATL/MFC有啥关系?难道它们不是高质量的库?
    MFC会拖个尾巴还情有可原,ATL是轻量级的,不依赖其它库,为什么不用?微软有没有软件用我不知道,但一些流行的第三方的大型软件还是用了ATL/WTL的。
    做类似FLASH功能的软件是很复杂的,除非你有心理准备和足够的技术储备,否则还是慎重一点吧。
      

  4.   

    LZ有点偏激了,我知道起码像AutoCAD这样的大型软件就是用MFC开发的,用ATL也多不胜数。
    别跟那些大公司的作品比,首先人家有实力,其次有人力,开发一个像flash规模的软件可能要
    几百上千的高手合作完成,你一个人不可能做到。
      

  5.   

       为什么不用MFC? 答:本人以前曾经是对日软件外包,工作了8个年头,负责AutoCAD二次开发的项目经理,公司和美国AutoDesk公司也有合作关系,他们公司对当初选择MFC也是后悔不已,具体原因包括执行效率问题、可移植性问题等等,我想做为项目经理,这些问题是不能不考虑的,尤其在当今这样一个跨平台、移动互联网普及的时代!   为什么不用ATL?答:众所周知用ATL+WTL可以写包含程序界面的ActiveX控件,大大简化了开发难度,提高了开发效率。但微软提供的封装好的各种UI控件(包含定义好的方法、属性)给广大软件开发者使用,其目的就是让你相信你使用这些东西可以提高工作效率、降低开发难度。可是:凡是有几年C++编程经验的人都知道,使用这些东西,无疑是一件多么痛苦的事,很多人说一个软件40%代码量是业务相关,60%代码是界面相关,这岂不可笑?看看DirectUI(微软自己用却不推荐你去用)用XML和Javascript就可以搞定所有界面相关的事情,说到这,我不得不为初入行的程序员们感到悲叹!ATL和这些控件其实是换汤不换药,而且当你的程序达到几万行,遇到一些莫名其妙时有时没有的BUG的时候,调试起来是一件多么痛苦的事,这些问题项目经理必须考虑!   因此,说了这么多还请大家理解我这样一个多年经验的老程序员的心声
      

  6.   

    看了楼主的回复,感觉楼主有点偏激,在此我也谈谈自己的看法,本人Windows上写代码也有十多年年了,虽然写的一直很烂。开始学C时,用Turbo C在控制台界面上调试程序(早期叫DOS界面),输入输出都是字符界面的,感觉自己很多东西都能写,但你要写个类界面程序(比如Turbo C的IDE)也还是很复杂的。后来学C++用VC5.0,感觉VC的IDE比Turbo C的IDE高级了N倍,win98也比早期的MS DOS易用了很多(虽然开始时有点不习惯)。然后学windows编程,使用VC的MFC写个窗口框架感觉很神奇,用向导几步就完成了,对话框上控件托拉拽就可以完成,但原理不是很懂,完全找不到main函数,但也看看MFC的相关资料也可以完成大部分问题。后来看Charles Petzold的《windows程序设计》和侯捷的《深入浅出MFC》,慢慢了解了MFC的运作原理,感觉MFC做到功能真的很全,为开发省了很多时间,但也感觉它过于庞大,再后来了解了COM,开始认识ATL,看《深入解析ATL》,认识了解ATL的框架设计,再到后来的WTL。随着自己知识的增长,觉得很多东西都没了神秘感,感觉很多东西都很easy,自己都可以写,别人写的东西都没自己写的好。看见别人的代码不好用,自己就重新写一份,很有楼主现在的想法。但随着项目的规模增大,一个项目不可能有一个人来完成,得大家来协助完成,即便你自己写个框架,其他人也得学习它。现有的例子和框架虽然不能满足你的所有需求,但你若使用它还是能节省很多人力,并且它已经经过了许多人的验证了,比你自己写的绝对要稳定(至少比你自己刚写出来的)。目前IT行业很多东西都有现成的,不用你重新去写,你只要专注你自己的那部分就可以了,难道你觉得操作系统不爽还自己弄一个出来,难道你觉得硬件结构有问题自己重新实现一个计算机?做项目要考虑时间和成本,如果你在规定的时间内不能作出来,即便你的软件再好用,再稳定那又用什么用呢。
      

  7.   

       一、先说一下我的近况吧,在解决后半辈子温饱问题的基础上,我已经毅然选择辞职,想去实现自己的理想,不完全是为了钱,更多是为理想,甚至是梦想而努力吧!因此不存在多长时间内这个限制。   二、微软出于自身垄断地位和商业利益的考虑,不得不隐藏操作系统很多细节,这无疑提高了软件开发行业的门槛,因此,微软不得不组织一帮人搞出MFC、ATL,甚至到现在直接托管的.net framework,降低门槛,让更多的人为Windows开发各种游戏、软件,所以微软永远是最大的赢家,谁让人家搞操作系统搞的早呢。   三、很多人认为程序员是吃青春饭的,这句话也对也不对,我敢说只会用.net framework和MFC这些工具写一些简单的应用软件的人,他们肯定是吃青春饭的,道理我就不说你也明白。开发Flash这样的高级货的程序员,你说他会失业吗?开发游戏3D引擎的程序员你说他会失业吗?   四、中国很多的中小规模的软件公司还在为温饱线上挣扎,因此在软件开发时间成本上不得不牺牲质量和技术门槛,表现方式为大量直接使用开源项目、第三方类库等东西,这也是现实,但长久以往的话,对中国软件行业的水平提高无疑无益的。   除去浮躁、脚踏实地、一步一步的刻苦钻石、我相信终究会有收获的!魔兽世界也是十年磨一剑,不是吗?   我也希望有志同道合的朋友能联系我!
      

  8.   

    LZ这句“在解决后半辈子温饱问题的基础上,我已经毅然选择辞职“。
    看来LZ是位功成名就的成功人士,后半辈子温饱问题都解决了,起码积累千万财富吧。佩服!
    LZ看不起MFC、ATL这些微软的东西,看来LZ还是位高手,确实很多公司不用这些东东的,
    比如Adobe。
    但是LZ又说”谁能给个思路或例子源码,小弟万分感谢!" 
    这不是有些矛盾么?MFC、ATL除了是微软的产品会被反微软人士扁以外,也是带有源代码
    可以给你思路和例子的好东西,尤其LZ又要写ActiveX,不知道LZ对ActiveX了解有多深。
    我敢说,不看MFC和ATL对ActiveX的封装,任何人不可能完全掌握ActiveX。因为ActiveX
    也是微软独门的技术,文档并不足以了解一切,不用MFC和ATL,就只有用COM API了,
    这也是微软的东西啊。
    LZ志向远大,高瞻远瞩,确实令人佩服,不过,海纳百川,不重复走别人走过的路,不重复发明
    轮子也是很重要的,清晰认识自己的能力,站在巨人的肩膀上,也许你可以走的更快更好,哈哈。
      

  9.   

    天地良心,我并没有说自己是高手啊,至于后半生温饱,也是顿顿大白饭而已,不要误会!   在下不才,软件外包公司做了8年,才发现自己只是个代码民工,我不解释,很多人都懂的!所以请把我看成代码民工就好,绝对不是高手!   r3000所说的看ATL和MFC的源码,这个建议很好,如果实在找不到思路我会分析的。对ActiveX的理解,我并不是太多,也并不是太少,有一点我知道,如果说的不对请鉴谅,那就是你站在底层角度用C或C++语言实现ActiveX的话,比你用MFC或ATL实现,从时间和成本上来说相差不会太多,这句话说完,相信很多人会笑话我,别急,听我道来:微软提供这些组件给你用,上手易,精通难,上手是快,项目开发进度是快,但当项目越来越大,代码过几万行,有了各种莫名其妙、时有时无的BUG,而且客户又有了平台移植、执行效率提高等等新要求的时候,你就明白我这句话的道理。注:中小型项目,万行代码以内的小项目不在讨论之列。   redui你说的QQ群,我没加过,但加过别的技术方面的QQ群,感觉氛围并不是很好,如果有朋友愿意和我合作共勉的话,我希望的是以电子邮件的方式联系,我有一个计划,绝不是空想,希望有志同道合的朋友与我共勉,也少了钻研道路上的一份孤独。相反,如果道不同,则不相为谋。