首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .NET实现之(ActiveX插件开发)

    在打算讲这篇文章之前我深思一个下午,打算分两篇来讲的,但是又怕读者看着嫌烦;其实稍微了解一点ActiveX插件的朋友都能知道,这样一扯可能出现一堆问题;但是我还是决定通过简单的方式尽量让初学者少接触底层的东西包括OLE(对象连接与嵌入)、COM(组件对象模型)之类的概念,但是ActiveX插件在开发上有很高的技术要求,虽然.NET为我们封装了很好的实现途径,但是我们也总不能停留在,知自然而不知其所以然的层面上;今天这篇文章我大概构思了一下,我主要会由浅入深的去逐层的讲解,对一些概念性的东西,我会给出参考资料供大家去学习,由于它的发展历史我也就不去讲解了,主要是实现为主;如果喜欢刨根问底的朋友可以去查询相关的文章或者看一些关于OLE、COM方面的书籍,就算我们不从事相关开发,但是对于我们进行.NET互操作方面还是很有帮助的,也不至于让我们觉得.NET的局限性;本人向大家推荐一本OLE方面的好书:《OLE 2高级编程技术》

    01

    系统架构师论文-基于构件的软件开发

    2007年上半年,我参加了某市信息办技术服务平台的项目开发,担任系统平台的设计和开发工作,该项目主要为了支持某市党政机关专网的二期建设所开发设计的,它是一个在线式的远程服务平台。在项目的开发过程中,我充分的进行基于构件的软件开发,考虑到软件复用和以后的扩展等方面,文中介绍了构件平台的选择,几种COM构件的开发,平台的实现过程。基于构件的开发大大提高了软件的质量,缩短了开发周期。该项目现在已经完满完成,得到用户的一致好评。但现在看来,在开发过程中也出现了一些不足,文中就构件的划分和使用方面谈了自己的一些看法。

    01

    MFC和QT的区别

    MFC 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。早期很多学习计算机专业的读者可以在学校里面都有接触过,因为这个是每一个计算机专业的读者必修课程,所以在早期的C++项目里面很多都是使用MFC为开发框架进行构建的,因为它有一个很大的好处就是和我们的windows的系统兼容性很好,可以直接调用整个系统的API函数,而且开发的程序对系统的支持度很好,因为我们现在的windows系统都是在向前兼容的,如windows系统里面有win 95、win98、win2000,win Xp,win7,这些操作系统都是一致向前兼容的,如果经历过这些系统的读者都会发现系统在win8之前一直往前兼容,造成操作系统变得越来越大,在win8系统,后windows系统引入C#一起来对windows系统进行调控,这时我们会发现win8对win7的兼容性很差,而且这个操作系统也是微软除visit系统最短命的系统,这个时候我们就会发现我们的MFC开发的程序在整个windows兼容性不是那么高了,而且由于当时,对于我们的C++开发一直有一个叫做visual studio 的编译器在C#语言没有出来前,只能编译C++,所以visual studio作为全世界最优的编译器也是整体支持MFC,所以这个时候我们现实生活中在windows系统开发的程序很大部分都是使用了MFC框架进行开发,在如今我们的很多酒店、政府等等很多行业上面用的都是MFC框架进行开发,MFC全面支持COM组件开发,这个时候很多在windows开发的程序也会在这上面支持COM组件开发,还有由于在中国大部分计算机的使用者都是用的windows系统,所以在开发程序中用C++来开发的时候都是使用了最为稳定的MFC进行开发,记得几年前和一位一起工作的朋友曾经谈过,只要微软不倒闭,MFC的工作者就不会失业,为啥呢,哪怕现在在windows上面最为流行的C#语言也没有C++中的windows编程对windows操作系统操作这么流利,打个比方如果你的电脑里面在加上一个高拍仪这个时候要用到的是USB驱动进行调用,这个时候处理USB驱动调用的时候就会发现,驱动调用的数据都需要进行位运算,这个时候用C++来处理是最为方便的,所以C++在windows上面的开发之所以占尽了便宜,是因为windows编程,而我们的MFC是封装后的windows编程。

    05

    Java 和 Python 有哪些区别?「建议收藏」

    区别一、python虚拟机没有java强,java虚拟机是java的核心,python的核心是可以很方便地使用c语言函数或c++库。二、python是全动态性的,可以在运行时自己修改自己的代码,java只能通过变通方法实现。python的变量是动态的,而java的变量是静态的,需要事先声明,所以java ide的代码提示功能优于python ide。三,python的产生几十年了,几十年前面向过程是主流,所以用python有好多程序用的是面向过程设计方法,很多概念从c语言过来的,class在python中是后加入的,而java是为了实现没有指针的c++(当年com组件用的引用记数,java用的虚拟机),主要采用面向对象的设计方法,很多概念是oop的概念。面向过程,相对简洁直观,但容易设计出面条程序,面向对象,相对抽象优雅,但容易过度抽象。四,在实际使用的python入门简单,但要学会用python干活,需要再学习python各种库,pyhton的强大在于库,为什么python的库强大,原因是python的库可以用python,c语言,c++等设计,再提供给python使用,所以无论gpu运行,神经网络,智能算法,数据分析,图像处理,科学计算,各式各样的库在等着你用。而java没有python那么多的开源库,很多库是商业公司内部使用,或发布出来只是一个jar包,看不到原始代码。python虚拟机因为编译性没有java的支持的好(或者说故意这么设计的),一般直接使用源码(linux)&

    03

    .NET实现之(WebBrowser数据采集—基础篇)

    本人写博客总是喜欢来一段开场白,其实细心看我文章的朋友能明白我的意思,本人就是想让更多的人能理解我写文章的用意,力求用通俗易懂的方式展现复杂抽象的概念,写文章的朋友尤其是用心写文章的朋友,其实真正的目的不是写文章而是去帮助大家学习技术,在.NET领域里有各种各样的技术,一个人的精力有限,在讲解某一个技术要点的时候难免疏忽大意讲错,这很正常,我有时候在看一些前辈的文章时,总能发现前辈多么希望将自己毕生的经验、技术传递给每一个想学的人,他们是多么让我们敬佩,让我们值得尊重,我还是那句话,技术不是用来炫耀的,技术是我们生存的本领,更是我们兴趣的展现,做技术的朋友都是比较深沉、细心、敏锐的人,他们那不修边幅、胡须浓厚、满脸沧桑的背后都是刻苦专研技术细节所留下来的“伤疤”,我们看技术文章的时候要抱有一种谦虚、尊重和感谢的心态去阅读,尽量能在文章中学到东西,这也是每一个写文章的人的最终目的;我再此感谢那些无私奉献的前辈,你们辛苦了,你们已经到达了一种境界,一种不是最求技术的境界而是最求人生重大价值的境界,在你们那字里行间,我能感受到你们在写文章时的心情,也许你们在那多么恶劣的环境下抒写,有蚊虫的叮咬、蚂蚁的瘙痒、家人的不理解、小孩的抱怨、老婆的抱怨等等心里压力都是值得我们每一位写博客的朋友去虚心学习的;开场白就不在继续唠叨下去了,我们进入主题,今天我要讲的内容是通过一个简单的.NETWinform控件去抓取页面上的HTML代码中的数据,这种需求其实也不少,本人有幸在工作当中曾经开发过自动数据采集程序,大概的实现目标是这样的:要实现对HTML代码进行分析,然后抓取有规律的并且正确的数据,在此期间可能会碰到页面的跳转、页面的布局IFrame、异步AJAX等等不确定因素,也有博友问过我怎么实现的问题,可是这些东西三言两语讲不清楚,所以拖了很久,再次先说声不好意思,本人打算写出来让需要学习的人都能得到参考资料; 我们先来分析一下大概实现的思路,首先我们要明白,实现抓取页面上的数据其实就是将HTML代码拿过来进行分析,然后读取里面的数据,做过Winform程序的朋友可能很容易理解,在我们Winform控件库里有一个叫做WebBrowser的控件,其实这个控件是在浏览器的COM组件上进行了一层封装,让我们不需要去关注COM与.NET之间的互操作技术问题,有兴趣的朋友可以去研究研究,怎么注入HTMLDom对象数据;通过WebBrowser控件打开页面,我们就可以通过获取WebBrowser对象的Document属性拿到页面上的所有HTML代码,我们在借助于第三方的HTML代码分析组件进行分析,我推荐HtmlAgilityPack.dll给大家使用,使用方式跟XMLDom差不多;我们用一副图来整体的分析一下相关技术;[王清培版权所有,转载请给出署名]

    02
    领券