DoubleLi

qq: 517712484 wx: ldbgliet

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

随笔分类 -  C++/C

上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 47 下一页

摘要: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 阅读(435) 评论(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 阅读(650) 评论(0) 推荐(0) 编辑

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

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

摘要:学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std; main () { int a,b; cin>>a> 阅读全文
posted @ 2013-12-19 00:06 DoubleLi 阅读(314) 评论(0) 推荐(0) 编辑

摘要:相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖引玉的作用吧,好了,废话少说,直接进入正题吧!要想使用标准C++中string类,必须要包含#i 阅读全文
posted @ 2013-12-18 13:43 DoubleLi 阅读(346) 评论(0) 推荐(0) 编辑

摘要:【JSON简介】 jsoncpp主要包含三种类型的class:Value、Reader、Writer。jsoncpp中所有对象、类名都在namespace Json中,包含json.h即可。【VALUE】 Json::Value是jsoncpp中最基本、最重要的类,用于表示各种类型的对象,jsoncpp支持的对象类型可见Json::ValueType枚举值。 可如下是用Json::Value类: Json::Value json_temp;//临时对象,供如下代码使用 json_temp["name"] = Json::Value("huchao"); 阅读全文
posted @ 2013-12-18 09:43 DoubleLi 阅读(888) 评论(0) 推荐(0) 编辑

摘要:[拷贝构造函数的调用时机] 1、对象以值传递的方式传入函数参数 2、对象以值传递的方式从函数返回 3、对象需要通过另外一个对象进行初始化 拷贝构造函数原型,假设类名为Foo,则copy constructor为: Foo(constFoo&obj); 限定符必须是const,且必须是引用。 阅读全文
posted @ 2013-12-18 09:34 DoubleLi 阅读(311) 评论(0) 推荐(0) 编辑

摘要:[define中的:#,##,#@]#defineConn(x,y)x##y#defineToChar(x)#@x#defineToString(x)#x(2)x##y表示什么?表示x连接y,让compiler认为 xy 需要组合在一起, 被看作是一个符号而不是其它. 举例说:intn=Conn(123,456);/* 结果就是n=123456;*/char*str=Conn("asdf","adf");/*结果就是 str = "asdfadf";*/(2)再来看#@x,其实就是给x加上单引号,结果返回是一个const char。举 阅读全文
posted @ 2013-12-18 09:31 DoubleLi 阅读(414) 评论(0) 推荐(0) 编辑

摘要:在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用方式。这些方式彼此概念并不好理解。下面是我对这些术语的理解。同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。当对方处理完毕以后,该函数才把消息处理函数所返回的 LRESULT值返回给调用者。异步异步的概念和同步相对。当一个异步过 阅读全文
posted @ 2013-12-17 20:58 DoubleLi 阅读(919) 评论(0) 推荐(0) 编辑

摘要:今天看了点关于Windows多线程的东西,摘抄点关于CloseHandle的内容放于此,以便以后参考。主要是《Windows核心编程》里的两小节:3.1.1 内核对象的使用计数 内核对象由内核所拥有,而不是由进程所拥有。换句话说,如果你的进程调用了一个创建内核对象的函数,然后你的进程终止运行,那么内核对象不一定被撤消。在大多数情况下,对象将被撤消,但是如果另一个进程正在使用你的进程创建的内核对象,那么该内核知道,在另一个进程停止使用该对象前不要撤消该对象,必须记住的是,内核对象的存在时间可以比创建该对象的进程长。 内核知道有多少进程正在使用某个内核对象,因为每个对象包含一个使用计数。使用计数是 阅读全文
posted @ 2013-12-17 20:55 DoubleLi 阅读(1606) 评论(0) 推荐(0) 编辑

摘要:Debugging with GDBhttp://www.delorie.com/gnu/docs/gdb/gdb_25.htmlGDB调试多线程程序总结一直对GDB多线程调试接触不多,最近因为工作有了一些接触,简单作点记录吧。 先介绍一下GDB多线程调试的基本命令。info threads显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。thread ID切换当前调试的线程为指定ID的线程。break thread_test.c:123 thread all在所有线程中相应的行上设置断点thread apply I 阅读全文
posted @ 2013-12-17 20:34 DoubleLi 阅读(322) 评论(0) 推荐(0) 编辑

摘要:[精彩] 求问delete和delete[] 的区别??http://www.chinaunix.net/jh/23/311058.htmlC++告诉我们在回收用new分配的单个对象的内存空间的时候用delete,回收用new[]分配的一组对象的内存空间的时候用delete[]。楼主的这个问题提得很好。很多人注意到了这个问题,但是却不清楚为什么要这样做,不这样做行不行。关于new[]和delete[],其中又分为两种情况:(1)为基本数据类型分配和回收空间;(2)为自定义类型分配和回收空间。对于(1),上面提供的程序已经证明了delete[]和delete是等同的。但是对于(2),情况就发生了 阅读全文
posted @ 2013-12-17 20:32 DoubleLi 阅读(761) 评论(0) 推荐(0) 编辑

摘要:STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。 从根本上说,STL是一些“容器”的集合,这些“容 阅读全文
posted @ 2013-12-17 20:27 DoubleLi 阅读(1172) 评论(0) 推荐(0) 编辑

摘要:Makefile学习教程: 跟我一起写 Makefile 0 Makefile概述 0.1 关于程序的编译和链接1 Makefile 介绍 1.1 Makefile的规则1.2 一个示例1.3 make是如何工作的1.4 makefile中使用变量1.5 让make自动推导1.6 另类风格的makefile1.7 清空目标文件的规则2 Makefile 总述 2.1 Makefile里有什么?2.2Makefile的文件名2.3 引用其它的Makefile2.4 环境变量 MAKEFILES2.5 make的工作方式3 Makefile书写规则 3.1 规则举例3.2 规则的语法3.3 在规则 阅读全文
posted @ 2013-12-17 20:22 DoubleLi 阅读(500) 评论(0) 推荐(0) 编辑

摘要:C++程序员打交道最多的就是MFC了,这个我不想多说,说来都是泪(C#年年更新,C++十年才出了一个featurePack还不是很好用)现在另外两支队伍越来越庞大(所谓穷则思变,呵呵),一是WTL,关于它的种种传说可以参考WTL中文教程,里面讲的很详细,这里我想说的是为什么使用WTL:传说WTL是微软内部所使用的界面框架程序,原因是高效,简洁,实际也是如此,WTL的程序内的内存占用比MFC小的多,而且WTL内建了对于可缩放对话框的支持(支持控件停靠哦),对于多文档以及视类的支持更是MFC望尘莫及的,但是WTL也有其自身的缺点,比如开发文档少,尤其是中文的,向导不够聪明(谁用谁知道,呵呵),换句 阅读全文
posted @ 2013-12-17 17:54 DoubleLi 阅读(1021) 评论(0) 推荐(0) 编辑

上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 47 下一页