随笔分类 - [30]C++
-
ActiveX开发(三)
摘要:ActiveX插件如果想在Html中进行引用,必须先对插件ocx文件进行注册,即通过regsvr32将该控件注册到用户的操作系统里。在实际应用中,一般有两种方式来达到这个目的:一、通过安装程序注册ActiveX 这种方式非常直观,就是制作一个简单的安装程序,该安装程序的任务就是将打包的ocx文件及其依赖文件解压复制到系统目标位置,然后再通过执行regsvr32命令将已复制到用户机器目标位置的ocx文件注册到系统中。当web页面中需要调用相应的ActiveX时,将在显著位置提示用户需下载指定的程序并运行安装。 实际很多应用程序在安装时都隐含地向系统注册了一些ActiveX的,例如QQ、飞信、播放 阅读全文
-
浏览器插件之ActiveX开发(二)
摘要:按照上文《浏览器插件之ActiveX开发(一)》的步骤,能开发一个基于MFC的简单的ActiveX控件。不过在实际操作中还是会遇到一些问题。由于对COM编程了解得很少很少,有些问题我也没有找到很好的解决方法。一、ActiveX需要引用其他dll的问题 我们的ActiveX需要对IC卡设备进行读写,所以需要调用设备自带的接口。设备厂商提供了“mwhrf_bj.lib”、“mwhrf_bj.dll”和“mwrf32.h”等接口文件。将“mwhrf_bj.lib”和“mwrf32.h”添加到项目中,ActiveX的接口方法中就可以调用接口文件中的方法了。但是在编译时会出现“Project:error 阅读全文
-
Qt 一步一步实现插件开发(附源码)
摘要:Qt 一步一步实现插件开发(附源码)前言:从上个月底因为新项目统一平台需要用Qt开发,就开始研究Qt,但是一直感觉没有入门,不知道为什么,很多功能实现了,但是知其然不知其所以然,就像现在设计的项目使用插件进行开发,做软件开发大体都知道什么事插件式开发,以前c#也用过,但是Qt插件开发还是第一次,百度了很久终于实现,这里记录下!这里不讲原理直接讲过程,高手绕行。。。第一部分建立插件程序实现2个功能(1)创建一个加法函数供主程序进行动态调用(2)创建一个查询页面供主程序进行动态调用第一步创建插件程序打开文件菜单-》新建文件或项目-》选择other project -》C++库如图点击Choose进 阅读全文
-
平台调用中的数据封送处理
摘要:.NET互操作性入门系列(三):平台调用中的数据封送处理2013-01-23 11:03 by Learning hard, 529 阅读,10评论,收藏,编辑本专题概要数据封送介绍封送Win32数据类型封送字符串的处理封送结构体的处理封送类的处理小结一、数据封送介绍看到这个专题时,大家的第一个疑问肯定是——什么是数据封送呢?(这系列专题中采用假设朋友的提问方式来解说概念,就是希望大家带着问题去学习本专题内容,以及大家在平时的学习过程中也可以采用这个方式,个人觉得这个方式可以使自己学习效率有所提高,即使这样在学习的过程可能会显得慢了,但是这种方式会对你所看过的知识点会有一个更深的印象。远比看的 阅读全文
-
浏览器插件之ActiveX开发
摘要:一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题。在有特殊需求(如涉及数据安全的金融业务数据交互、需插件才能实现的与本地设备的交互等)的情况下可以酌情慎用。 浏览器插件总体可以划分为两大阵营,即IE支持的插件以及非IE支持的插件。本来在Netscape时代,对于浏览器插件是有公用的规范的(NPAPI),一开始所有浏览器都支持该规范,包括IE。后来出于商业原因,微软的IE不再支持NPAPI,改而自己开发了一套基于COM的ActiveX体系,但这个体系对于非IE浏览器是拒绝支持的。所以目前的状况基本是,IE浏览器仅支持Act 阅读全文
-
Try your best to make your code elegant!
摘要:浅淡“人如其‘码’”——看一道C基础笔试题有感又是好久没有写博客,年底比较忙,《Performanced C++》系列也在努力酝酿但没有更新。不过近日出笔试题时,看到个题,以及各种不正确答案和烂代码,感触实在太多。忘了以前在哪看过,说笔试时候写的代码虽然只有短短几行至几十行,但却能完完全全把一个coder的真实水平体现的淋漓尽致,正所谓古有“人如其文”,看他写的文章就知道他有多少斤两。对于我们coder而言,就是“人如其‘码’“,一道看似简单的笔试题,其实完全可以考察出coder至少以下n个方面:1、代码风格和规范:从落笔第一刻开始体现2、异常安全的“危机感”:从是否对传入参数的有效性有“敏感 阅读全文
-
C++容器模板在共享内存中的使用
摘要:本文用于探讨在共享内存中使用容器的好处,以及几种在共享内存中C++模板容器的方法。1 为什么要在共享内存中使用模板容器?为什么要避开普通内存而选择共享内存,那肯定是使用共享内存的优势:l 共享内存可以在多进程间共享,到达进程间通信的方式。l 共享内存可以在进程的生命周期以外仍然存在。这就可以保证在短暂停止服务(服务进程coredump,更新变更)后,服务进程仍然可以继续使用这些共享内存的数据。如果这些优势在加上C++容器模板使用方便,开发快速的优势,无疑是双剑合璧,成为服务器开发的利刃。2 在共享内存中使用模板容器最大难点是?但如果要要做到让容器在模板中使用,最大的麻烦是什么?就是指针。(同步 阅读全文
-
翻译:如何成为一个专业级的c++程序员---An answer from quora
摘要:翻译:如何成为一个专业级的c++程序员---An answer from quora前几天转载一篇quora上的文章,但是英文的,我还是觉得有必要将这篇文章翻译一下,希望更多的人能够看到C++是一门复杂的语言成为专业级c++程序员的路线:步骤0:理解c++语言 必须去读Stroustrup的《The C++ Programming Language》,这个是必经的道路步骤1:了解c++历史,理解c++的特性是怎样被设计出来的 去读Stroustrup的《The Design and Evolution of C++》步骤2:理解生命一个类时,c++内部做了什么 Stanley Li... 阅读全文
-
vtordisp
摘要:关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自于对标题中“vtordisp”的好奇。其实这个关键词也是来源于我最近查看对象模型的时候偶然发现的。我是一个喜欢深究问题根源的人(有点牛角尖吧),所以当我第一次发现vtordisp的时候,我也是很自然的把它输进google查找相关资料,但是结果令我不太满意。不过,即使如此,我还是把与它相关的资料整理如下,并结合自己的理解和大家分享一下,希望能共同学习进步。首先从产生“vtordisp”问题的那个例子开始。classBase{public:intbase;virtualvoidfun(){}};classDer:virtualpubl 阅读全文
-
视频的采集和动态显示
摘要:在(原创)基于ZedBoard的Webcam设计(一):USB摄像头(V4L2接口)的图片采集和(原创)基于ZedBoard的Webcam设计(二):USB摄像头图片采集+QT显示两篇博客中,我们完成了ZedBoard上USB摄像头的图片采集,以及将图片显示到Qt界面上。可是毕竟采集和显示到只是一帧图像,并非动态的视频数据。本小节将在介绍V4L2更新视频缓冲的方式、Qt paintEvent更新控件的基础上,实现如何实现视频的动态显示。更多更新请关注我的博客:@超群天晴http://www.cnblogs.com/surpassal/一、V4l2更新缓冲Buffer的方法回顾上一节中,我们使用 阅读全文
-
.NET程序员的C\C++情结
摘要:摘要这个系列是本人在工作或工作之余开发和学习C\C++的一些笔记。本文涉及C++/CLI的一些内容。本文为原创,首发于我的个人博客:.NET程序员的C\C++情结(3)。欢迎交流指正。转载请注明出处。虽然现在主要从事.NET平台的开发,但是一直以来对C\C++有着那份难以割舍的情结。本文会涉及到托管C++的一些随笔记录。当然,如果写纯.NET应用的话,C#无疑是最合适的语言的。但是托管C++在同时处理Native调用和托管调用上无疑是十分吸引人的,往往用来作为托管世界和Native世界的桥梁。当然。你可以说用.NET的“平台调用”特性同样能够胜任,萝卜青菜各有所爱吧。托管C++基础语言特性在托 阅读全文
-
函数链调用
摘要:在编程中有时会把多个函数串在一起依次调用,以达到特定的目的,在这里我们把这样的调用方式形象地称为函数链调用。函数链中的函数有些是独立的,有些则只用在函数组合中,不会单独调用。对象的连续配置和组合是函数链调用比较常用场合,去除语法糖,linq也是一个函数链的运用。下面通过即时编译中的一个例子,来看看函数链的用法。 几种热门的语言C#、java、js都采用了即时编译的方式,即时编译需要有相应的汇编类库供调用,以便把VM代码转换成本地机器代码。 Apple的汇编类库是比较常用的,被firefox,webkit用于js的即时编译,下面的代码是Apple汇编类库的一般调用方式:masm.push(e.. 阅读全文
-
C++内存泄漏基础
摘要:一段漂亮的代码必须考虑到内存泄漏的问题,而内存泄漏根本原因是因为你的程序在heap中分配的内存没有释放掉,当然没有释放掉的原因很多,最简单的就是你new完之后没有写delete,当然还有很多其他的原因,下面是我最近的一些新得。 #include <iostream>using namespace std;#define true 1class A{private: int n;public: A(int m){ cout<<"A() is called\n";} ~A(){ cout<<"~A() is called\n&quo 阅读全文
-
大部分是C++和Java
摘要:整理发布本人所有博客文章中涉及的代码与工具(大部分是C++和Java) (为了能让更多人看到,再发一次旧文,望见谅) 为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载。C++1、《高性能 Windows Socket 服务端与客户端组件(源代码及测试用例下载)》 《基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现》 《通用异步 Windows Socket TCP 客户端组件的设计与实现》 摘要:编写 Windows Socket TCP 客户端其实并不困难,Window... 阅读全文
-
C++学习--应用篇(Windows/Linux)(书籍推荐及分享)
摘要:我将以平台划分,分别介绍Windows和Linux下个人认为的好书(与基础篇一样,大部分网络上都有电子版);对于C++基础类的图书,这里不再重复,有兴趣的朋友请移步《C++学习--基础篇》。Windows:在Windows平台下主要说的是VC编程(使用MFC),以下将对VC开发的相关图书介绍;对于ATL等,涉及不多,不做评论;《Windows程序设计》这是一本绝版的图书,算是Windows平台下编程指南图书的鼻祖。网络传言甚好,由于年代久远,一般不好下载了,在这里给出下载地址。方便朋友;本书每章的例子都是使用的Windows下的原始API开发的,一个基本窗口的显示也需要自己动手编写接受消息的循 阅读全文
-
C++:Iterator
摘要:Iterator是序列概念的体现,Iterator指向值而不是值本身,因而也就具有两方面的特性,一方面Iterator可以指代值,另一方面具有序列指示特性,可以在序列中移动,指针和数组序号都具有这样的特性。Iterator(迭代器)可以说是std的灵魂所在,也可以这样说,Iterator为std的成功提供了保证。 Iterator为什么会如此重要,因为大部分程序都是图灵完备的,所以可以分析一下图灵机,我们把图灵机分成三个部件:条带、接口部件(包括移动和数据捡取部分)、处理部件。这三个部件中,接口部件对应就是Iterator,它是条带与处理部件的纽带,从中可以看出Iterator的重要性。 .. 阅读全文
-
C++和C#构造函数的区别
摘要:(1)C++ 不允许在一个构造函数中调用另外一个构造函数(称为委派构造函数调用),而 C# 则允许。例如: C++: struct Point { public: int X, Y; Point(int x, int y); Point(Point pt) : Point(pt.X, pt.Y) { } // 错误,C++ 不允许 }; C#: struct Point { public int X, Y; public Point(int x, int y); public Point(Point pt) : Point(pt.X, pt.Y) { } // 可以,C... 阅读全文
-
C/C++中*、&用法
摘要:A:函数声明:int find(int* a);函数调用:int b = 1; int n = find(&b);这样调用时,实际上是进行了:int* a = &b,创建了一个新的指向b的整型指针a作为find函数范围内的局部变量。B:函数声明:int find(int& a);函数调用:int b = 1; int n = find(b);这样调用时,实际上是进行了:int& a = b,给变量b起了个别名a,也就是说a和b实际上代表的是同一个变量,调用期间没有创建任何新的变量。C:函数声明:int find(int a);函数调用:int b = 1; in 阅读全文
-
C++ 线程安全的单例模式
摘要:C++ 线程安全的单例模式废话不多说,常用的代码积淀下来。一、懒汉模式:即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety.使用double-check来保证thread safety.但是如果处理大量数据时,该锁才成为严重的性能瓶颈。1、静态成员实例的懒汉模式: 1 class Singleton 2 { 3 private: 4 static Singleton* m_instance; 5 Singleton(){} 6 publ... 阅读全文
-
C++和Java
摘要:为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载。C++1、《高性能 Windows Socket 服务端与客户端组件(源代码及测试用例下载)》 《基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现》 《通用异步 Windows Socket TCP 客户端组件的设计与实现》 摘要:编写 Windows Socket TCP 客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择。但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还... 阅读全文