DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年12月20日

摘要: There are several reasons for xcopy deployment of an application (also known as application local). One main reason is that you are independent of what the target computer has installed.Also your application always uses the “correct” (or better: tested) version of DLLs, regardless of what MS install 阅读全文
posted @ 2013-12-20 16:12 DoubleLi 阅读(498) 评论(0) 推荐(0)

摘要: If you create a default CRT/MFC application with VS2008, this application will not run on other computers. You application will complain with“This application has failed to start because the application configuration is incorrect”.The problem is that by default VC2008 uses the DLL-version of the CRT 阅读全文
posted @ 2013-12-20 16:11 DoubleLi 阅读(462) 评论(0) 推荐(0)

摘要: 前一种方法是将manifest文件放入exe中,但是要记得需要在工程中设置 这样的话exe中就不存在manifest了,在debug目录下就会看到相应的manifest文件。后者是将exe中的manifest文件提取出来,但是exe中依然有manifest文件! 阅读全文
posted @ 2013-12-20 15:31 DoubleLi 阅读(3134) 评论(0) 推荐(0)

摘要: 理解编译器的编译模板过程如何组织编写模板程序前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。可是在我需要自己编写模板类时,我首先遇到的事实却是“传统”编程方法(在*.h文件声明,在*.cpp文件中定义)不能用于模板。于是我花费一些时间来了解问题所在及其解决方法。本文对象是那些熟悉模板但还没有很多编写模板经验的程序员。本文只涉及 阅读全文
posted @ 2013-12-20 09:47 DoubleLi 阅读(655) 评论(0) 推荐(0)

摘要: 转发自:http://blog.csdn.net/tttyd/article/details/68933921.视频容器格式简介 一般而言,视频文件的扩展名就是视频的容器名。比如“avi文件”或者“mp4文件,avi和mp4只是容器格式。好比zip文件,里面可以包含各种文件,视频容器格式只是定义了怎么存储数据,而不论存储什么类型的数据。不过视频容器格式比这个更复杂一些,因为不是所有的视频流格式兼容所有的视频容器格式。 一个视频文件一般包含多个track,而每个视频track(没有音频)又可对应一到多个音频track。这些track又总是相互关联的。每个音频track内部包含标记用于和视频同步。 阅读全文
posted @ 2013-12-20 00:51 DoubleLi 阅读(1666) 评论(0) 推荐(0)

摘要: 转载自:http://blog.csdn.net/tttyd/article/details/5258096源代码下载 http://files.cnblogs.com/tttyd/Activex.rar由于在博主的博客中没有讲明工程的创建过程与最后插件的注册方法,我在另一篇文章中作了补充:用ATL写简单的ActiveX控件介绍: 如今在许多流媒体视频网站(youku,tudou......)我们都会发现,观看视频之前都会有一段时间的广告,甚至在观看视频途中也会插入一些广告。实现这个效果的可以有多种技术。使用Javascript就可以实现,只需要在同一个位置分别创建两个Object,一个嵌.. 阅读全文
posted @ 2013-12-20 00:49 DoubleLi 阅读(15053) 评论(0) 推荐(0)

摘要: 我正在做的项目需要用读卡器来读数据,由于系统是B/S架构的所以只能把读卡器的驱动封装成一个无界面的ActiveX控件,这样web页面中的js代码才能访问读卡器其实做起来也挺简单的,我用的环境是VS2005,步骤如下:打开VS2005后:1、创建一个ATL Project。Application Setting选择为:Server-Type:Dynamic-Link Library (dll)Additional-Options: Allow merging of proxy/stub code这里说一句,对于所有只用于web的activex控件,不管有没有界面,都应该用这两个选项。2。选择菜单 阅读全文
posted @ 2013-12-20 00:46 DoubleLi 阅读(1936) 评论(0) 推荐(0)

摘要: 今天犯了一个粗心的错误,在无窗口线程中,SetTimer中设置计时器ID,而WM_TIMER消息响应函数中得到的计时器ID却不是之前设置的计时器ID. [cpp] view plaincopyprint?//111902.cpp:Definestheentrypointfortheconsoleapplication. // //#include"stdafx.h" #include"stdio.h" #include"windows.h" BOOLDispatchThreadMessage(MSG*pMsg);VOIDCALLBAC 阅读全文
posted @ 2013-12-20 00:43 DoubleLi 阅读(636) 评论(0) 推荐(0)

摘要: 一个UUID生成算法的C语言实现——WIN32版本cheungmine2007-9-16根据定义,UUID(Universally Unique IDentifier,也称GUID)在时间和空间都是唯一的。为保证空间的唯一性,每个UUID使用了一个48位的值来记录,一般是计算机的网卡地址。为保证时间上的唯一性,每个UUID具有一个60位的时间戳(timestamp)。这个时间戳表示自公元1582年(绝对不是1852,这是《COM技术内幕》,1999年3月第1版第89页中的一个错误)10月15号00:00:00:00以来的时间,是以100纳秒为单位的时间间隔。1纳秒(ns)=10-9秒(s)。U 阅读全文
posted @ 2013-12-20 00:41 DoubleLi 阅读(5152) 评论(2) 推荐(1)

摘要: 基于Oracle OCI的数据访问C语言接口ORADBIcheungmine@gmail.comMar. 22,2008ORADBI是我在Oracle OCI(Oracle 调用接口)基础上开发的,支持Oracle8i、9i、10g等数据库。根据Oracle公司的介绍:OCI是如此可靠,以至于Oracle数据库中的每一条SQL语句都通过OCI来执行。当应用程序开发人员需要面向Oracle数据库服务器的最强大的接口时,他们将调用 Oracle调用接口(OCI)。OCI提供了对所有Oracle数据库功能的最全面的访问。OCI API中包含了最新的性能、可伸缩性和安全性特性。采用OCI的最大好处就. 阅读全文
posted @ 2013-12-20 00:39 DoubleLi 阅读(2562) 评论(1) 推荐(0)

摘要: 如何在WINDOWS下编译BOOST C++库cheungmine2008-6-25写出来,怕自己以后忘记了,也为初学者参考。使用VC8.0和boost1.35.0。1)下载boosthttp://www.boost.org/users/download/这是它的下载页面,需要下载2个东西:Packaged ReleasesVERSION 1.35.0和Boost Jam 3.1.16你需要在每个条目下面找到Details | Download字样,点击Download,进入下载页。可是遗憾的是sourceforge站点被封了,所以通常你是无法下载的。(我诅咒封这个站点的人)。因此有必要使用某 阅读全文
posted @ 2013-12-20 00:38 DoubleLi 阅读(801) 评论(0) 推荐(0)

摘要: Windows下如何使用BOOST C++库我采用的是VC8.0和boost_1_35_0。自己重新编译boost当然可以,但是我使用了http://www.boostpro.com/products/free提供的安装工具 BoostPro 1.35.0 Installer (192K .exe) 。我强烈建议使用这个工具来在Windows下安装BOOST库和源文件。1)使用boost_1_35_0_setup.exe这个工具下载boost库,选择你要的包(类型总是Mutilthread和Mutithread Debug),下载后自动安装。我用VC8.0的boost_1_35_0安装在E:/ 阅读全文
posted @ 2013-12-20 00:36 DoubleLi 阅读(3085) 评论(0) 推荐(0)

摘要: C++ DLL 模板1、使用VS2005创建Win32 DLL项目,选择空项目,然后加入CppDll.h和CppDll.cpp文件。2、修改CppDll.h和CppDll.cpp文件使之成为需要的内容。3、编译生成CppDll.dll。下面是模板文件:[cpp] view plaincopyprint?// //CppDll.h //bycheungmine //C++DLL模板 // /***使用CPPDLL:#include"../CppDll.h"#ifdef_DEBUG#pragmacomment(lib,"F:/del/CppDll/Debug/CppD 阅读全文
posted @ 2013-12-20 00:33 DoubleLi 阅读(1087) 评论(0) 推荐(0)

摘要: 用户自定义结构数据与VARIANT转换 cheungmine将用户自定义的C结构数据存储成VARIANT类型,需要时再将VARIANT类型转为用户自定义的结构数据,有十分现实的意义,既然我们不想为这样的结构数据写一个COM包装类。虽然有很多方法和手段生成这样的VARIANT,但是,多数时候可能需要一个更加简单的,灵活的方法。我在做远程过程调用的C接口时,忽然联想到,既然RPC可以把任何数据以字节的形式发送,那么,就可以利用这个机制,把结构打包成字节数组。而字节数据是可以很方便地存储在VARIANT中。这个过程是广为人知的,但是,真正把结构列集成字节数组,如果不想使用某些标称的序列化的方法,而全 阅读全文
posted @ 2013-12-20 00:31 DoubleLi 阅读(3433) 评论(0) 推荐(0)

摘要: Agg vs. Cairo 二维绘图引擎之比较和选择 cheungmine当今时代对于作为二维图形软件开发者, 是幸运的。因为除了Windows GDI/GDI+之外,我们还有很多其他的选择。而且这些选择除了能跨平台之外,性能上与原始GDI/GDI+相比,都不逊色。如果不考虑绘图的效果,使用Win32 GDI函数直接绘图的效率大约是同样的GDI Plus的10倍以上。为了反走样的美观,只有牺牲效率了。老式的程序还在使用GDI绘图,不是这些程序不想提升到GDI+,可能这样改动的代码量太大,所谓船大不好掉头所致。因此,后发的优势就是可以利用当今软件发展的最新成果,快速切入一个领域,所谓迎头赶上。言 阅读全文
posted @ 2013-12-20 00:28 DoubleLi 阅读(2772) 评论(0) 推荐(0)

摘要: 双缓冲绘图和窗口控件的绘制 ---ATL ActiveX 窗口控件生成向导绘制代码OnDraw的一个错误 cheungmine 我们通常使用ATL COM组件,生成一个带窗口的ActiveX控件,然后希望在这个窗口中绘制我们的图像、图形等数据,然而ATL向导生成的代码中包含很多错误,下面是其自动向导生成的代码: HRESULT OnDraw(ATL_DRAWINFO& di) { RECT& rc = *(RECT*)di.prcBounds; // 将剪辑区域设置为 di.prcBounds 指定的矩形 HRGN hRgnOld = NULL; if (GetClipRgn( 阅读全文
posted @ 2013-12-20 00:25 DoubleLi 阅读(1968) 评论(0) 推荐(0)

摘要: 在COM组件中调用JavaScript函数要求是很简单的,即有COM组件A在IE中运行,使用JavaScript(JS)调用A的方法longCalc(),该方法是一个耗时的操作,要求通知IE当前的进度。这就要求使用回调函数,设其名称为scriptCallbackFunc。实现这个技术很简单:1 组件方(C++)组件A 的方法在IDL中定义:[id(2)] HRESULT longCalc([in] DOUBLE v1, [in] DOUBLE v2, [in, optional] VARIANT scriptCallback);组件A的方法实现:// 假设回调原型为:// scriptCall 阅读全文
posted @ 2013-12-20 00:16 DoubleLi 阅读(784) 评论(0) 推荐(0)

摘要: 转载请标明是引用于 http://blog.csdn.net/chenyujing1234欢迎大家提出意见,一起讨论!一、OpenCV介绍:OpenCV是由Intel性能基元(IPP)团队主持,而且几个主要开发者都与IPP团队保持良好的关系,所以OpenCV利用了IPP高度手工优化的代码来实现加速。使用IPP获得提速是很显著的。OpenCV使用了优化了的C和C++代码实现,它对IPP不存在任何依赖。但如果安装了IPP,那么OpenCV将会通过自动载入IPP动态链接库获取IPP的优势。获得IPP并安装: http://www.itel.com/software/products/ipp/inde 阅读全文
posted @ 2013-12-20 00:08 DoubleLi 阅读(1933) 评论(0) 推荐(0)