自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dengrk的专栏

追求卓越~完善自我!

  • 博客(35)
  • 收藏
  • 关注

原创 搭建webrtc服务器, licode 全过程(2019)

1. 源码下载编译与安装.官方网站有安装方法说明:http://lynckia.com/licode/install.html#clone遵照以上说明:git clone https://github.com/ging/licode.gitcd licode下载代码安装git输入命令即可,下边安装可能遇到的问题及解决方式:./scripts/installUbuntuD...

2019-03-18 19:11:37 4306 2

转载 C++中 Const用法小结

C++中 Const用法小结  关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,参考了康建东兄的const使用详解一文,对其中进行了一些补充,写下了本文。 1.       const常量,如const int max = 100;  优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符

2008-02-28 21:28:00 556

原创 网络文件传输影响因素分析

读《Visual C++ 编程技巧典型案例分析》――网络与通信及计算机安全与维护篇实例19: Soket网络程序中参数对流传输性能的影响分析学到知识: Socket程序影响传输性能的参数有5个:套接字个数、传输延时、传输块的大小、套接字接收缓冲区和发送缓冲区。(1)   每个线程一个套接字,适当设定线程数量可以提高传输速度。(2)   适当设定延时时间。(3)   适当设置

2008-01-03 21:38:00 2059

转载 VC读取XML简单例子

VC读取XML简单例子XML最近被吹的神乎其神,很多数据的交换,包括很多中间件系统,WebService,软件的配置文件,都是在用XML这个技术,的确是个好东西,我手痒,写了个读取XML的代码片段,用的是MSXML的一些接口。我读的是BT软件的配置文件,XML内容如下: version="1.0"?>BitComet Author="RnySmile" Version="0.1

2008-01-02 21:32:00 3796

转载 使用SkinMagic美化VC界面

1、SkinMagicLib.h拷贝到工程目录下;2、将SkinMagicLib.lib及smf皮肤文件放到VC工程的RES目录下;3、将Lib文件链接到工程中;4、在StdAfx.h中加入  #include "SkinMagicLib.h"5、用文本编辑器打开工程的rc文件,在里面加入/**//////////////////////////////////////////////

2008-01-02 21:22:00 1269

转载 即使通讯软件

Miranda IM 2007-07-18 11:36:27 Miranda IM是一款支持多种协议的即时聊天客户端程序,高效便捷,无需安装即可使用,而且占用内存更少。特别适合经常在不同机器上聊天的用户,可以把 Miranda IM拷贝到闪存上随处聊。超强的插件系统让Miranda IM获得极高的扩展性,软件本身只内置了最常用的通讯功能,其余强大特性可随时通过网站上提供的数百个

2008-01-02 15:43:00 1256

转载 IP信使传输协议

最近看到一些朋友在编写网络程序是遇到一些问题,故把以前做IPMSG时翻译的文档贴过来,希望对网络编程新手有所帮助,在寻找编程项目的同学们也可参照此文档写出自己的IPMSG。本文只包含其中几个比较重要的命令以及运行机制的中文翻译,更详细的内容请参照文后的IPMSG 协议英文文档声明:下述协议内容略去了一些在编写程序过程中没有用到协议内容,最初的Ipmsg协议是用日文写的,下面协议内容由本人(cu

2008-01-01 21:28:00 2371

转载 MFC的CString(VC6) 内存管理分析[2]

nbsp; try{ // 分配内存块 默认是64个m_nallocsize.     pnewblock = cplex::create(m_pblocks, m_nblocksize, m_nallocsize);       }catch_all(e){            ...异常       }end_catch_all       // 下面的代码是将内存块压入m_pnodefre

2007-12-18 20:30:00 1142

转载 MFC的CString(VC6) 内存管理分析[1]

cstring 类是我们经常用到的类,所以有必要对它的内存管理模式分析一下.cstring 内存管理的演变过程如下:   vc5  单纯的使用new delete方法。        因为字符串操作需要频繁调整内存大小.而采用c++操作符 new 与 delete         是没有与realloc相应功能的。结果就是每一次的改变内存大小都需要额外        增加一次拷贝操作。  

2007-12-18 20:25:00 1034

原创 Plex,内存块的申请

struct KK_Plex     // warning variable length structure{ KK_Plex* pNext;/*#if (_AFX_PACKING >= 8) DWORD dwReserved[1];    // align on 8 byte boundary#endif*/ void* data() { return this+1; }  static

2007-12-18 20:07:00 1078

原创 MFC常用数据类型

MFC常用数据类型:1、UINT   A 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32-bit unsigned integer on Win32.定义原型:typedef unsigned int        UINT;2、bool应该是C语言里定义的,返回值为true和false(事实上就上1和0)    

2007-12-18 18:54:00 2392

转载 CMap用法的精辟解释

如何声明CMAP许多人对Cmap的声明模式CMap感到迷惑,为什么不用CMap呢?实际上,CMap中的的数据最终会是CPair,而CPair内部是(KEY,VALUE)。因此,CMap其实存 储的是KEY,而非ARG_KEY。然而,如果你查看MFC的源代码,几乎CMap所有的内部参数传递都是访问ARG_KEY和ARG_VALUE,因 此,使用KEY&来代替ARG_KEY似乎是正确的,除了在

2007-12-18 18:22:00 6006 1

原创 CSDN提交BLOG文章,字体放大后重叠!

最近开始使用CSDN 往自己的BLOG上提交文章,发现转载COPY过来的文章,粘贴到这个控件中后,字体放大后显示时,会产生文字重叠的问题。后来先粘贴到WORD中,放大字体后在粘贴回来,还是发现有文字重叠的现象。现在解决办法:粘贴到WORD中后,设置成自己想要的字体后,保存成HTM格式,在用IE打开,这样一定没有文字重叠吧,在拷贝整篇文章,粘贴到这里就可以了,文字不会出现重叠。

2007-12-17 09:11:00 1187

转载 C++中接口与实现分离的技术

在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的技术。《COM技术内幕》 §7 —— 类厂、COM库 CoCreateInstance的声明: HRESULT __stdcall CoCreateInstance( const CLSID

2007-12-16 21:33:00 844

转载 C++做一个真正动态链接的DLL的做法

让动态链接库真正的动态其实是一件很麻烦的事情。事实上,可以称得上“动态”的函数一共就只有两种,即全局函数和纯虚函数。所以我们有三种做法: 第一种做法,对于接口,不使用任何类,所有导出函数都用extern "C"的全局函数。 第二种做法就是使用COM,COM做了我这篇文章所说的几乎所有的事情,除此之外还顺便把线程同步这些烦人的事情也一并解决了。 第三种做法,导出一个全局函数,让这个函

2007-12-16 21:15:00 855

转载 COM学习笔记七《COM技术内幕》§7 —— 类厂、COM库

 《COM技术内幕》 §7 —— 类厂、COM库CoCreateInstance的声明: HRESULT __stdcall CoCreateInstance(   const CLSID&   clsid,        IUnknown*   pIUnknownOuter,    DWORD   dwClsContext,    const IID&   iid,           

2007-12-16 21:12:00 1269

原创 COM学习笔记六《COM技术内幕》§6 —— HRESULT、GUID和注册表

《COM技术内幕》 §6 —— HRESULT、GUID和注册表没有仔细看(Note:这也是很重要的一章)《COM技术内幕》 §6 —— HRESULT、GUID和注册表(重新学习)(1)关于HRESULTCOM组件使用HRESULT来向用户报告各种情况。许多COM接口函数所返回的均是HRESULT值。NOTE HERE:HRESULT != Handle to RESULT,

2007-12-16 21:10:00 826

转载 COM学习笔记五《COM技术内幕》§5 —— 动态链接

  《COM技术内幕》 §5 —— 动态链接关于如何从DLL中输出函数;如何装载DLL;客户与组件的划分。《COM技术内幕》 §5 —— 动态链接(重新学习)回顾:1)          将组件分成多个接口只是将应用程序分割成多个部分的第一步。2)          然后我们使用QueryInterface将组件抽象成由多个相互独立的接口构成的集合。3)        

2007-12-16 20:48:00 858

转载 COM学习笔记三四《COM技术内幕》--接口和QueryInterface函数

实现了§2和§3的简单的程序,这些程序并不是完全意义上的COM程序。§2 —— IFACE.CPP代码清单: // //Iface.cpp // // #include #i

2007-12-16 20:40:00 634

转载 COM学习笔记一《用VC进行COM编程所必须掌握的理论知识》

  1、   为什么要用COMOO vs. COM —— 重用的方法不同(1)类库 —— 类库的重用基于源码的方式① 限制了编程语言② 每次都必须重新编译(2)DLL —— ① 函数重名问题② 各编译器对C++函数的名称修饰不兼容问题(也可以用extern "C";来强调使用标准的C函数特性,关闭修饰功能,但这样也丧失了C++的重载多态性功能)③ 路径问题④ D

2007-12-16 20:29:00 711

转载 COM编程入门(二)

  本文为刚刚接触COM的程序员提供编程指南,解释COM服务器内幕以及如何用C++编写自己的接口。 继上一篇COM编程入门之后,本文将讨论有关COM服务器的内容,解释编写自己的COM接口和COM服务器所需要的步骤和知识,以及详细讨论当COM库对COM服务器进行调用时,COM服务器运行的内部机制。 如果你读过上一篇文章。应该很熟悉COM客户端是怎么会事了。本文将讨论COM的另一端——COM服

2007-12-16 19:17:00 899

转载 剪贴板操作之GetClipboardData函数

前面介绍怎么样把数据放到剪贴板里面,那么又是怎么样从剪贴板里面获取数据出来呢?当然还是需要使用其它的API函数来获取剪贴板里的数据。获取剪贴板里的数据时,是不知道当前剪贴板里是否有数据的,也不知道剪贴板里的数据格式是什么。那么下面就来解决这两个问题,先使用函数IsClipboardFormatAvailable来获取剪贴板里的格式是否可以处理,接着使用函数OpenClipboard打开剪贴板,然后

2007-12-15 22:02:00 19398

转载 全局变量和静态全局变量区别(转载)

static全局变量与普通的全局变量有什么区别?全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:

2007-12-15 21:58:00 758

转载 COM编程入门1

本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念。内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件。本文不包括如何编写自己的COM对象和接口。         COM即组件对象模型,是Component Object Model 取前三个字母的缩写,这三个字母在当今Windows的世界中随处可见。随时涌现出来的大把大把的新技术都以COM为基础

2007-12-14 22:23:00 752

原创 DLL查看相关工具_以及相关注意事项

一.       DUMPBIN 命令行Microsoft COFF 二进制文件转储器 (DUMPBIN.EXE) 显示有关 32 位通用对象文件格式 (COFF) 二进制文件的信息。可以使用 DUMPBIN 检查 COFF 对象文件、标准 COFF 对象库、可执行文件和动态链接库 (DLL)。(在VC Studio 目录下有dumpbin.exe工具,环境配置文件路径:visual Stud

2007-12-14 21:10:00 4930 1

转载 DLL编程06_Win32环境下动态链接库(DLL)编程原理

作者:李欣提交者:eastvc 发布日期:2003-12-10 14:08:40原文出处:http://www.swm.com.cn/比较大应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。其中可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问题:一

2007-12-14 08:49:00 676

转载 DLL编程05 _delete this,dll导出类及如何写plugins(PART III)

3.实现plugins。有了前两章的基础,这个就比较好办了。先了解一点点基本概念:Q:what is pluginsA:就是通过加载不同的dll实现不同的功能,或者附加的功能,典型的如模拟器的各种插件(显示,input...)。Q:why we use pluginsA:主要为了使程序模块化,并且容易扩充。升级组件时不需要重新发布整个产品。Q:how to do it?A:使用LoadLibrar

2007-12-14 08:44:00 557

转载 DLL编程04

一般来说,DLL是一种磁盘文件,以.DLL、.DRV、.FON、.SYS和许多以.EXE为扩展名的系统文件都可以是DLL。它由全局数据、服务函数和资源组成,在运行时被系统加载到进程的虚拟空间中,成为调用进程的一部分。如果与其它DLL之间没有冲突,该文件通常映射到进程虚拟空间的同一地址上。DLL模块中包含各种导出函数,用于向外界提供服务。DLL可以有自己的数据段,但没有自己的堆栈,使用与调用它的应用

2007-12-13 21:48:00 547

转载 dll编程 03

6.1概论  MFC扩展DLL与MFC规则DLL的相同点在于在两种DLL的内部都可以使用MFC类库,其不同点在于MFC扩展DLL与应用程序的接口可以是MFC的。MFC扩展DLL的含义在于它是MFC的扩展,其主要功能是实现从现有MFC库类中派生出可重用的类。MFC扩展DLL使用MFC 动态链接库版本,因此只有用共享MFC 版本生成的MFC 可执行文件(应用程序或规则DLL)才能使用MFC扩展DLL。

2007-12-13 21:06:00 530

转载 dll编程 02

VC++动态链接库编程之MFC规则DLL5. MFC规则DLL  5.1 概述  MFC规则DLL的概念体现在两方面:  (1) 它是MFC的    “是MFC的”意味着可以在这种DLL的内部使用MFC;  (2) 它是规则的  “是规则的”意味着它不同于MFC扩展DLL,在MFC规则DLL的内部虽然可以使用MFC,但是其与应用程序的接口不能是MFC。而MFC扩展DLL与应用程序的接口可以是M

2007-12-13 21:05:00 441

转载 dll编程 01

1.概论   先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被

2007-12-13 21:02:00 550

原创 ::ShellExecute(NULL, TEXT("open"), m_lpText, NULL, NULL, SW_SHOWNORMAL);

可用于打开文件/文件夹,或打开指定URL地址。头文件为:#include

2007-12-13 13:28:00 884

原创 续:开源软件新时代 55个经典开源Windows工具

PDF-Creator 0.81:PDF程序网址:http://sector7g.wurzel6.de/pdfcreator/index_en.htm    用于生成PDF文件的商业软件或共享软件已经相当丰富,但完全免费的软件还不太多见。在这里我们要向你推荐PDF-Creator,它可以作为 Windows网络打印机或者桌面打印机安装在你的系统中。这意味着你可以在任意的Windows应用程序中输出

2007-12-12 10:30:00 1049

转载 开源软件新时代 55个经典开源Windows工具

开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万;同时,基于Linux的Web服务器也占据了最大的市场份额。人们普遍相信,开放源代码软件(open-source software,简称OSS)要比专有软件系统(即声明用户不能分享或修改软件的软件系统)要更安全。这可能有两个原因:首先,由于开源软件的源代码是向所有人开放的,因此任何人都可以找出

2007-12-12 10:28:00 892

原创 _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

这个是调用DLL,自己编写的DLL,调试工程时,运行后出现这样的错误。 查阅相关资料后,得知是因为工程编译设置项有问题。修改:在VC6.0工程中进行设置,Project-->Setting-->左边选择编译的工程,右边选择C++标签-->Category:-->选择Code Generation-->把Use run-time library:改成Multithreaded DLL

2007-12-12 09:52:00 4250 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除