DoubleLi

qq: 517712484 wx: ldbgliet

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

2013年12月19日

摘要: dumpbin用法:dumpbin /exports /out:d:\mfc90.txt d:\mfc90.lib在使用VC时,可以用DUMPBIN。EXE来得到某个DLL中所输出的符号的清单。如下面的命令:dumpbin -exports Cmpnt1.dll如:C:\WINDOWS\system32>dumpbin -exports msgsvc.dllMicrosoft (R) COFF Binary File Dumper Version 6.00.8447Copyright (C) Microsoft Corp 1992-1998. All rights reserved.Du 阅读全文
posted @ 2013-12-19 20:58 DoubleLi 阅读(10653) 评论(0) 推荐(1)

摘要: 这里请注意,在编译ffmpeg时,不要使用--disable-devices选项。使用--enable-encoder=rawvideo--enable-decoder=rawvideo启用rawvideo codec。代码如下:[cpp]view plaincopyprint? #include#include#include#include#include#include#include#include#include#defineMAX_INPUT_DEVICE_NUM10#ifdef_WIN32intstrcasecmp(constchar*s1,constchar*s2){while 阅读全文
posted @ 2013-12-19 20:45 DoubleLi 阅读(4627) 评论(2) 推荐(0)

摘要: 原因是: DDrawSurface 丢失, DDraw表面在很多情况下都会丢失(如:启动其他全屏独占程序,屏保,或锁屏时), 表面丢失其实就是表面所使用的内存或显存被DirectDraw系统释放, 分配给其他程序. 如果表面丢失, 对此表面的操作都会返回 DDERR_SURFACELOST , 此时应该调用 IDirectDrawSurface 接口方法 Restore 来恢复表面(重新申请内存或显存)。伪代码如下:hr = m_lpDDSOffscreen->Lock(rcDest,&ddsd,DDLOCK_SURFACEMEMORYPTR|DDLOCK_WAIT,NULL); 阅读全文
posted @ 2013-12-19 20:43 DoubleLi 阅读(536) 评论(0) 推荐(0)

摘要: 好久没有更新博客了,今天开始继续耕耘。生活要继续工作要继续梦想也一定要继续!之前写过一篇关于DirectX截屏的文章,其中有网友留言提到了截图黑屏的问题,于是这些日子研究了一下,与大家一同分享。为什么会黑屏?一句话概括,黑屏是由于DDraw加速引起的!先说一下DirectX的显示原理,通常我们看到的屏幕上的数据,都是通过Primary Surface送至显示器的,什么是Primary Surface呢?中文叫做主显示表面,也就是说我们当前看到的屏幕上的图像数据是从这个表面来的,除了主表面意外还有离屏表面,叫做OffScreenSuface。这种表面中的数据是不直接显示在屏幕上的。常用的截屏函数 阅读全文
posted @ 2013-12-19 20:35 DoubleLi 阅读(875) 评论(0) 推荐(1)

摘要: 右键工程属性 -> 配置属性 -> 生成事件 ->生成后事件,命令行中的路径加上双引号,如copy $(ProjectDir)\export\win32\Debug\$(ProjectName).dll $(OutDir)修改为copy "$(ProjectDir)\export\win32\Debug\$(ProjectName).dll" "$(OutDir)" 阅读全文
posted @ 2013-12-19 20:25 DoubleLi 阅读(1544) 评论(0) 推荐(0)

摘要: 打开Visual Studio 2008 命令提示,使用命令[plain]view plaincopyprint? dumpbin/exportssimple.dll即可查看 阅读全文
posted @ 2013-12-19 20:23 DoubleLi 阅读(497) 评论(0) 推荐(0)

摘要: 环境:VS2008 + CxImagebtn.h[cpp]view plaincopyprint? #pragmaonce//CBtn#include"ximage/ximage.h"classCBtn:publicCButton{DECLARE_DYNAMIC(CBtn)private:CxImage*m_pImgNormal;CxImage*m_pImgOver;CxImage*m_pImgDown;CxImage*m_pImgFocus;CxImage*m_pImgDisable;BOOLm_bTracking;BOOLm_bMouseOver;BOOLm_bLBtn 阅读全文
posted @ 2013-12-19 19:33 DoubleLi 阅读(2421) 评论(0) 推荐(0)

摘要: Every version of Visual Studio comes with certain versions of the Microsoft libraries, such as the C runtime library, the MFC library, and so on. For example, Visual Studio 2008 comes with version 9.0.21022.8 of the Microsoft C runtime library and version 9.0.21022.8 of the MFC library. You can easi 阅读全文
posted @ 2013-12-19 17:55 DoubleLi 阅读(442) 评论(0) 推荐(0)

摘要: vc2008程序发布指南2008-05-03 17:46vc2008开发的程序的发布方式可以有5种方式:1. 采用静态链接到crt和MFC. 只要你拥有组成程序的所有源代码,你就可以采用这种方式, 这种方式除了程序变大一点,好处多多: 1) 不必重新发布vc2008基础库vcredist_x86.exe(安装到WinSxS). 2) 不必产生,嵌入manifest. 3) 也不把vc2008基础库放在程序所在目录.2. exe(嵌入manifest) + vcredist_x86.exe 确保程序正确产生并嵌入manifest文件,然后把程序和vcredist_x86.exe一起发布.用户先安 阅读全文
posted @ 2013-12-19 17:47 DoubleLi 阅读(664) 评论(0) 推荐(0)

摘要: 恩,为了大家都能很方便的理解,我将尽量简单通俗地进行描述。[现象]对这个问题的研究是起源于这么一个现象:当你用VC++2005(或者其它.NET)写程序后,在自己的计算机上能毫无问题地运行,但是当把此exe文件拷贝到别人电脑上时,便不能运行了,大致的错误提示如下:应用程序配置不正确,请重新安装程序……或者是MSVCR80D.dll 没有找到什么的(我记得不是很清楚,不过大致是这样的)[分析]看到这样的提示,当然不会傻到重装咯。第一反应应该是什么配置有问题、或者是缺少了什么依赖的库文件;于是我就根据以前Windows缺少库文件的经验,把所有库文件(××.DLL)统统一股脑地复 阅读全文
posted @ 2013-12-19 17:32 DoubleLi 阅读(21660) 评论(0) 推荐(3)

摘要: Side-by-sidetechnology is a standard forexecutable filesinWindows 98 Second Edition,Windows 2000, and later versions of Windows that attempts to alleviate problems that arise from the use ofdynamic-link librariesin Microsoft Windows. Such problems include version conflicts, missing DLLs, duplicate D 阅读全文
posted @ 2013-12-19 16:57 DoubleLi 阅读(702) 评论(0) 推荐(0)

摘要: 本文简要介绍Side-by-side assembly技术,探讨在插件技术中使用类似方法的可能。什么是Side-ty-side AssemblySide-by-side assembly是Windows Xp及以上系统解决动态链接库版本冲突所使用的技术,要点是编译程序时,由Visual Studio生成一个manifest文件,指明本应程序所使用的动态链接库的版本;发布程序时也要发布该manifest文件,供客户计算机上的dll loader根据manifest加载适当版本的dll,如果不发布该项manifest,客户机按默认版本加载Dll。Representation of typical 阅读全文
posted @ 2013-12-19 16:52 DoubleLi 阅读(1133) 评论(0) 推荐(0)

摘要: 什么是Side-by-Side Assembly?Side-by-Side Assembly(建称SxS)是微软在Visual Studio 2005(Windows 2000?)中引入的技术,用来解决Windows平台上的DLL Hell问题。DLL Hell的介绍可以看Wikipedia的文章。简单的说,DLL Hell窘境包括了Windows应用程序依赖的DLL带来的若干问题,包括同名DLL、DLL升级、DLL载入顺序等等。Side-by-Side Assembly按照我的理解,是一种特殊的DLL,按照Side-by-Side Assembly的要求开发的,并用XML格式的manifes 阅读全文
posted @ 2013-12-19 16:48 DoubleLi 阅读(3057) 评论(0) 推荐(0)

摘要: 一、问题编译某个遗留工程后,运行程序时报错,“由于应用程序的配置不正确,应用程序无法启动。重新安装应用程序可能会解决这个问题。”查看生成的Manifest文件如下: 问题出现在第三个assemblyIdentity中version的值与机器上该dll的值不符。二、解决方法需要将manifest中第三个assemblyIdentity中version的值修改为与机器上相应dll的版本。查看该项目的属性发现,【连接器】->【清单文件】->【生成清单】项的值为“是”。由此可见,该manifest... 阅读全文
posted @ 2013-12-19 16:21 DoubleLi 阅读(6127) 评论(0) 推荐(0)

摘要: 什么是vs 程序的manifest文件manifest 是VS程序用来标明所依赖的side-by-side组建,如ATL, CRT等的清单。为什么要有manifest文件一台pc上,用一组建往往会有不止一个版本(c:/windows/winsxs或系统目录下),程序在加载的时候,不知加载哪个,于是manifest文件来指明。manifest在哪儿,如何创建。如果用VS开发,可以Set通过porperty->configuration properties->linker->manifest file->Generate manifest To Yes来自动创建manif 阅读全文
posted @ 2013-12-19 16:15 DoubleLi 阅读(1225) 评论(0) 推荐(0)

摘要: [此文档是初定版,随时可能进行更改。]JavaScript 内存分析器在 Visual Studio 2012 更新 1 和 Visual Studio 2013 中提供,旨在帮助你了解内存使用量和查找使用 JavaScript 为 Windows 生成的 Windows 应用商店应用程序中的内存泄漏。JavaScript 内存分析器可以为你执行以下操作:通过强调最相关的数据帮助你在应用程序中快速查找内存使用情况问题。你将以快照摘要形式收到此数据,其显示两个快照之间的差异,并提供指向更详细视图的链接。提供控制器、类型和根的视图来帮助隔离问题。减少 JavaScript 堆数据中的不可操作的信息 阅读全文
posted @ 2013-12-19 09:15 DoubleLi 阅读(1985) 评论(0) 推荐(0)

摘要: 本主题带领您完成使用 JavaScript 内存分析器确定并修复简单内存问题的过程。在本教程中,我们创建一个生成大量数据的应用程序。我们预期在导航到新页时该应用程序会释放数据。说明JavaScript 内存分析器可用于 Visual Studio 2012 更新 1 中的 Windows 8。运行 JavaScript 内存分析器测试应用程序用 Visual Studio 中,单击“文件”>“新建”>“项目”。单击左窗格中的“JavaScript”,然后单击中间窗格中的“导航布局应用程序”。在“名称”框中,键入诸如 JS_Mem_Tester 等名称,然后单击A“确定”。在“解决方 阅读全文
posted @ 2013-12-19 09:11 DoubleLi 阅读(1359) 评论(0) 推荐(0)

摘要: 简介:如果大量使用 JavaScript 和 Ajax 技术开发 Web 2.0 应用程序,您很有可能会遇到浏览器的内存泄漏问题。如果您有一个单页应用程序或者一个页面要处理很多 UI 操作,问题可能比较严重。在本文中,学习如何使用 sIEve 工具检测并解决内存泄漏问题,本文也包含内存泄漏问题的应用示例以及解决方案。发布日期:2012 年 4 月 09 日级别:中级原创语言:英文访问情况 :10932 次浏览评论:0(查看|添加评论- 登录)平均分 (7个评分)为本文评分简介一般来说,浏览器的内存泄漏对于 web 应用程序来说并不是什么问题。用户在页面之间切换,每个页面切换都会引起浏览器刷新。 阅读全文
posted @ 2013-12-19 08:59 DoubleLi 阅读(856) 评论(0) 推荐(0)

摘要: 一、内存泄露 之前确实看了很多资料,但这位大哥的话可谓画龙点睛,不是奉承他,一下子就打通了我的任督二脉,请看:trarck 写道 IE下的内存泄露原因就是循环引用,IE的垃圾回收器不能很好处理这种引用。会产生泄露的循环引用,只有孤立的DOM对象(脱离DOM树)。孤立的DOM对象间的循环引用,孤立的DOM对象与JS对象的循环引用。为什么是孤立的DOM对象呢?在离开页面时(刷新,跳转)会删除整个DOM树,在DOM树上的对象也会被删除,就算有循环引用,此时被打断。孤立的DOM对象有:一、用JS创建但未加入DOM树。二、从DOM树中删除的。所以避免泄露,就尽量不要让这样的DOM对象产生。有时候这样对象 阅读全文
posted @ 2013-12-19 08:54 DoubleLi 阅读(1695) 评论(0) 推荐(0)

摘要: 最近接受了一个Js职位的面试,问了很多Js的高级特性,才发现长时间使用已知的特性进行开发而忽略了对这门语言循序渐进的理解,包括Java我想也是一样,偶尔在Sun官方看到JDK6.0列举出来的new features才发现很多东西是自己并不知道或者遗忘了的。看来还是要坚持总结技术,反复理解和运用才能保持对任何技术的掌握运用能力阿。翻了一些Js的新老资料,准备先讲讲Js的内存泄露问题——当一个DOM对象包含一个Js对象的引用(例如一个Event Handler), 而这个Js对象又持有对这个DOM对象的引用时,一个环状引用就行成了。这本身并不是什么错误或者Bug,因为Js的回收机制能理解这种环状的 阅读全文
posted @ 2013-12-19 08:53 DoubleLi 阅读(6976) 评论(1) 推荐(0)