自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 Socket模型详解(转)

Socket模型详解(转)两种I/O模式一.选择模型二.异步选择三.事件选择四.重叠I/O模型五.完成端口模型五种I/O模型的比较   两种I/O模式1、两种I/O模式阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式。可以通过多线程技术进行处理。非阻塞模式:执行I/O操作时,Wins

2013-10-31 11:45:46 664

转载 SOCKET基本函数

TCP/IP详解:笔记http://blog.csdn.net/goodboy1881/article/category/204448

2013-10-31 11:08:18 639

转载 FTP理论

起初, FTP并不是应用于IP网络上的协议,而是ARPANET网络中计算机间的文件传输协议, ARPANET是美国国防部组建的老网络,于1960~1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web服务器,需要从远程主机上取得HTML文

2013-10-30 14:36:07 1751

转载 UFT-8,多字节和UNICODE之间的转换

多字节转换为UTF-8:void ConvertGBKToUtf8( CString& strGBK ){ int len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, NULL,0); WCHAR * wszUtf8 = new WCHAR[len+1]; memset(wszUtf8, 0, len * 2

2013-10-29 13:38:44 794

转载 UFT-8,多字节和UNICODE之间的转换

多字节转换为UTF-8:void ConvertGBKToUtf8( CString& strGBK ){ int len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, NULL,0); WCHAR * wszUtf8 = new WCHAR[len+1]; memset(wszUtf8, 0, len * 2

2013-10-29 13:38:24 1208

转载 UTF-8和Unicode之间的转换!

本来在网上能找到很多这方面的代码,但很多都是转帖,且很多细节让人理解起来很别扭,估计有的转帖的也是不知所云。虽说就两个Windows API的调用,但只有自己去写代码测试研究,才真正领会了这些细节。文中注释有写的不当的欢迎指正。下面是我写的测试程序:[cpp] view plaincopy#include "stdafx.h"  #include   #in

2013-10-29 11:44:43 1426

转载 MFC之资源切换

在MFC使用过程中,遇到DLL资源与主EXE资源冲突问题。出现这样的Bug,一时无从下手。报错位置在核心代码中dlgcore.cpp。[cpp] view plaincopyBOOL AFXAPI _AfxCheckDialogTemplate(LPCTSTR lpszResource, BOOL bInvisibleChild)  {      ASSER

2013-10-25 10:54:36 1018

原创 第七章

SDI的初始化过程       CWinApp --> CDocument --> CFrameWnd --> CView 。(要注意:SDI包含两个窗口,一个是框架窗口,一个是视图窗口,视图窗口覆盖在框架窗口之上,因此操作的时候,需要注意到底是在对视图窗口进行操作,还是在对框架窗口进行操作,SDI窗口是多个窗口的叠加)。改变窗口的外观        在窗口创建完成之前,可以利用P

2013-10-21 22:22:15 546

转载 MFC的DLL

MFC的DLL 一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。DLL的背景知识 静态链接和动态链接 当前链接的目标代码(.obj)如果引用了

2013-10-21 09:23:18 711

转载 DoDataExchange使用

DoDataExchange( )void CRegisterDialog::DoDataExchange(CDataExchange* pDX)...{CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CRegisterDialog)DDX_Control(pDX, IDC_INCOME

2013-10-15 14:41:47 1949

转载 MFC自定义控件

VC MFC(Custom Control)自定义控件转自:http://hi.baidu.com/3582077/item/c97e9491082a391d924f410a参考关于Custom Control自定义控件的介绍,有一篇文章感觉不错,不过是英文的,英语不好的也没关系,不是有“有道”吗?再说了,我们只要看代码就行了,而且步骤也就那么几步,结合教程

2013-10-14 16:03:36 1362

转载 MFC自定义控件

VC MFC(Custom Control)自定义控件转自:http://hi.baidu.com/3582077/item/c97e9491082a391d924f410a参考:http://www.codeproject.com/Articles/5032/Creating-and-Using-custom-controls-in-VC关于Custo

2013-10-14 16:02:54 1710

转载 extern "C"和_stdcall

xtern "C" __declspec (dllexport) char* __stdcall SQLFetch(const char* fieldname);C語言中extern cc与c++程序连接问题 它们之间的连接问题主要是因为c c++编绎器对函数名译码的方式不能所引起的,考虑下面两个函数 /* c*/ int strlen(char* string) { ...

2013-10-13 21:44:35 845

转载 GoogleEarth二次开发难点和技巧

一、基本步骤1、安装GoogleEarth程序2、对GoogleEarth activex控件进行注册(googleearth.exe /regserver)3、在开发环境中引用googleearth activex 二、开发方式针对GE的开发有两种方式,一种是基于GE的com API,一种是基于KML。基于 Com API的开发方式主要用来控制GE的视角、实现动画效果

2013-10-12 15:46:07 2144

原创 COM编程技术基础

一:    客户程序在与COM组件进行交互时,只需知道与哪个COM对象进行交互即可,而不必关系组件模块的具体名称和位置,即COM对象的位置对客户是透明的。客户将通过128位的GUID来完成对象的创建和初始化工作。对于COM对象,此全局标识符也被称作CLSID。     创建GUID可以使用COM库提供的CoCreateGuid()API函数,每一个注册了的COM对象在系统注册表的HKEY_

2013-10-12 14:49:41 1031

原创 IDispatch接口

简介:      IDispatch接口能接收一个函数的字符串名称,并执行这个函数。      解释性语言跟宏语言,要调用COM组件的自定义接口,都是通过自动化控制程序把自定义接口中的函数名称的字符串跟函数参数传递给IDispatch,让IDispatch间接地去执行自定义接口中的函数。函数:      GetIDsOfNames函数将读取一个函数名称,并返回其调度ID。   

2013-10-12 13:52:38 1061

原创 组件和接口

接口: 接口的定义#define interface struct如下定义接口:#include using namespace std;#define interface structinterface IX{ virtual void Fx1()=0; virtual void Fx2()=0;};interface IY{ virtual void F

2013-10-12 11:26:22 3161

原创 COM库

COM库          组件的对象和接口模型给用户提供了一种构建组件的规范,用户利用这种规范来创建自己的组件,为了协助用户更有效率地创建组件,MS操作平台提供了有关COM的一些列代码。          COM库实现了很多功能,用户通过调用COM库的函数来完成组件的相关操作。一般用户创建一个组件对象,进而调用组件的接口成员函数,最后释放组件对象,整个过程中都要用到COM库。    

2013-10-11 17:33:07 1878

原创 DLL中导出解析

这里有两种方法声明导出函数:一种是通过使用__declspec(dllexport),添加到需要导出的函数前,进行声明;另外一种就是通过模块定义文件(Module-Definition File即.DEF)来进行声明。           .dll中的_declspec(dllexport)语句是用来导出函数的,作用和.def文件中的EXPORTS的作用是一致的,都是用来从.dll文件中向外导

2013-10-11 10:41:51 1098

原创 DLL入门

静态库       函数和数据被编译进一个二进制文件(通常扩展名为.lib),在使用静态库的情况下,在编译连接可执行文件时,连接器从库中复制这些函数和数据并把他们和应用程序的其他模块组合起来创建最终的可执行文件。(.exe文件)【在release程序的时候,只需要release可执行文件,静态库已经生成到了可执行文件】动态库(只有导出的函数才能被使用)        在使用动态库的时候

2013-10-09 23:03:46 828

转载 __declspec(dllexport)和__declspec(dllimport)

__declspec(dllexport) & __declspec(dllimport)__declspec(dllexport)声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中 省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出

2013-10-09 15:52:12 565

原创 DLL(1)

对于每个引出函数,使用extern "C"说明符,以及_stdcall修饰符。      C++中,为了使编制的DLL程序更加通用,一般指定DLL的引出函数使用_stdcall调用习惯,如果使用_cdecl调用习惯,则有些编程语言环境就不能使用这些DLL程序。C++编译器为DLL程序的每个引出函数生成了一个修饰名,这些修饰名对于不同的编译器并不兼容,因此从通用性的角度出发,我们在每个函数定义前

2013-10-09 15:45:04 782

转载 COM入门(4)

1. 实现IDispatch接口COM自动化是指实现了IDispatch接口,这样可以供VBScript,JScript能脚本调用。实现IDispatch接口的对象,对应到VBScript和JScript中的Object。IDispatch接口定义为:interface IDispatch : IUnknown{     HRESULT GetTypeInfoCou

2013-10-08 10:01:59 653

转载 COM入门(2)

1. 实现COM组件的自注册和反注册实现COM组件的自注册和反注册,本质上就是写注册表与删注册表。需要在DLL中引出两个函数:DllRegisterServer和DllUnregisterServer,让这两个函数实现注册表操作。LPCTSTR RegTable[][3]= {     {L"CLSID\\{586CDC7B-09F1-4f44-A110-F0E604AED

2013-10-08 10:00:44 736

转载 COM入门(3)

1. 注册TypeLibIDL在MIDL编译后会生成一个.tlb文件,这个文件包含TypeLibrary信息,为使我们写的COM组件供.NET或VB等程序调用,注册类型库是必须的。我们可以直接注册生成的tlb文件,但为了便于部署,可以将tlb文件作为资源嵌dll中。新建一个rc文件,添加如下代码:1 TypeLib "Debug\\BeginningCOM.tlb"这里的T

2013-10-08 10:00:39 838

转载 COM入门(1)

1. 什么是COMCOM全称是Component Object Model,中文译为组件对象模型。COM组件在物理上是一些DLL或EXE文件;COM组件实现二进制级别的代码重用;COM是与程序设计语言无关,理论上任何语言都可以开发和调用COM组件;COM组件用引用计数实现生命周期的自我管理;COM组件调用者能够查询它所支持的接口;COM组件的位置对调用者是透明的;COM组件依赖于注册表;COM

2013-10-08 10:00:00 860

空空如也

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

TA关注的人

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