自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 windows远程桌面

为了将数据部署到远程服务器上,采用微软的远程桌面功能特别方便. 具体实现如下       1. 开始 ---- 附件------ 远程桌面连接  或者DOS 命令 mstsc       2. 选项卡--- 本地资源-----本地设备和资源 ---详细信息 (选择在远程桌面上可以看见的本地磁盘驱动器)       3.  连接       4. 连接到远程桌面后, 在我的电脑里就可

2012-07-31 16:52:26 571 1

原创 编译生成小盾牌

编译生成带有小盾牌的可执行文件,需要添加manifest 文件 (xxxx.exe.manifest) <assemblyIdentity version="1.0.0.1" processorArchitecture="X86" name="XXXX" type="win32"/> XXXX.exe

2012-05-02 23:39:38 858

转载 简单的皮肤库 Skin++

一.加载Skin++1.在(VC7)"项目->属性->链接器->输入->附加依赖项"中加入SkinPlusPlusDLL.lib 或 在(VC6)"Project->Settings->Link->Object/library"中加入SkinPlusPlusDLL.lib 2.在你的程序中包含头文件#inlcude "SkinPlusPlus.h"3.在程序中加入初始化语句In

2012-05-02 23:17:33 1958

转载 VS链接错误:"PRJ0050 Failed: Failed to register output"

错误信息>>Project : error PRJ0050: Failed to register output. Please ensure you have the appropriate permissions to modify the registry.解决办法>>There are three possible causes. Diagnosis is usually st

2012-04-22 16:23:29 4544 1

转载 STL

STL的容器可以分为以下几个大类: 一:序列容器, 有vector, list, deque, string.二 : 关联容器,     有set, multiset, map, mulmap, hash_set, hash_map, hash_multiset, hash_multimap三: 其他的杂项: stack, queue, valarray, bitset STL

2012-04-08 14:14:41 553

转载 关于DEBUG 信息

#ifdef DEBUG#define DEBUGMASK(bit) (1 << (bit))#define MASK_ERROR DEBUGMASK(0)#define MASK_WARN DEBUGMASK(1)#define MASK_INIT DEBUGMASK(2)#define MASK_BATTERY

2012-02-17 11:06:13 528

原创 PreTranslateMessage 处理键盘消息

做windows开发有段时间了,但项目多数都不没涉及到键盘事件的处理。现在用到突然忘了。  处理键盘可以通过两种方式:        1. hook 技术侦测。 这里就先不介绍,有机会在整理。        2. 通过重载PreTranslateMessage函数也可以实现。BOOL CScanDemoDlg::PreTranslateMessage(MSG* pMsg){ /

2012-02-15 16:57:49 1179

原创 CE6 创建桌面快捷方式,以及开机自动运行

在项目过程中为了方便程序演示,用到桌面快捷方式。1. 将应用程序添加到NK中。       platform.bib  [MODULES] 中添加应用程序                 ScanDemo.exe $(DRIVERS_DIR)\TestSample\ScanDemo.exe NK 2.创建文件的快捷方式:

2012-02-15 16:44:19 1498

转载 成大事必备

成大事必备9种能力、9种手段、9种心态分享  一:沉稳(1)不要随便显露你的情绪。(2)不要逢人就诉说你的困难和遭遇。(3)在征询别人的意见之前,自己先思考,但不要先讲。(4)不要一有机会就唠叨你的不满。(5)重要的决定尽量有别人商量,最好隔一天再发布。(6)讲话不要有任何的慌张,走路也是。二:细心(1)对身边发生的事情,常思考它们的因果关系。(2)对做

2012-02-14 14:55:28 692

原创 网络心跳包处理

以前在学习Socket编程时都只是简单的调用微软的API函数,很少考虑网路的异常处理。在做实际的项目中网路异常是必须要考虑到的。  网路断开掉线异常处理:   HeartBeat 网络心跳包     一下是个人理解,网络心跳包的处理方式有两种“           方式一:  终端主动发起,  服务器记录各个终端最后一个包的时间点,然后定时扫描全部客户端,如果扫描时间点与上次收包时间点

2012-02-11 15:16:58 7456 1

转载 WinCE中串口驱动及接口函数介绍

在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图:         串口驱动本身分为MDD层和PDD层。MDD层对上层的Device Manager提供了标准的流设备驱动接口(COM_xxx),PDD层实现了HWOBJ结构及结构中若干针对于串口硬件操作的函数指针,这些函数指针将指向PDD层中的串口操作函数。DDSI是指MDD层与PDD层的接口,在串口驱动中实际

2012-01-07 16:28:07 735

转载 WinCE6.0 USB驱动架构分析

1、WinCE设备的三种角色      USB是主从结构,分为主端和从端。一般主端称为Host,从端称为Client,但是在WinCE系统中有些不同,主端称为Host,从端称为Function。      对于USB而言,搭载WinCE系统的嵌入式设备可以扮演三种不同的角色,即三种不同的功能:Host、Function以及OTG。      WinCE设备经常会外接各种USB设备,如R

2012-01-07 15:51:16 3068

转载 在WinCE中实现Screen Rotation

在WinCE中做Screen Rotation,首先确认显示设备的驱动是否支持Screen Rotation功能。在显示设备支持的前提下,可以通过以下两种方法做Screen Rotation:      1.       通过修改注册表做Rotation 默认情况下,屏幕都是正常显示的,也就是说翻转角度为0度。可以通过修改注册表来做屏幕翻转,通过修改”Angle”的值来完成,具体设置如

2012-01-07 15:36:40 553

转载 IP Address控件的使用方法

#include //把CString表示的IP地址写到IP Address里面 CString strIP="192.168.0.17"; DWORD dwIP=ntohl(inet_addr(strIP)); m_IP.SetAddress(dwIP);//读取IP Address的内容. DWORD dwIP; IN_ADDR ia; CString strI

2011-12-21 17:39:41 992

转载 COM组件的运行机制,即COM是怎么跑起来的

这部分我们将构造一个创建COM组件的最小框架结构,然后看一看其内部处理流程是怎样的IUnknown *pUnk=NULL;    IObject *pObject=NULL;    CoInitialize(NULL);    CoCreateInstance(CLSID_Object, CLSCTX_INPROC_SERVER, NULL, IID_IUnknown,

2011-11-25 10:41:48 1348

转载 dispinterface接口、Dual接口以及Custom接口

自动化接口就是用IDispatch实现的接口。它的好处就是脚本语言象VBScript、 JavaScript也能用COM组件了,从而基本上做到了与语言无关它的缺点主要有两个,第一个就是速度慢效率低。这是显而易见的,通过虚函数表一下子就可以调用函数了,而通过Invoke则等于中间转了道手续,尤其是需要把函数参数转换成一种规范的格式才去调用函数,耽误了很多时间。所以一般若非是迫不得已我们都想用VTab

2011-11-25 10:36:05 1043

转载 BSTR、char*和CString转换

1) char*转换成CString      若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如         char chArray[] = 'This is a test';char * p = 'This is a test';  或LPSTR p = 'This is a test';  或在已

2011-11-25 10:16:33 737

原创 ATL 实现COM

ATL实现COM 感觉是目前最简单的编程方式了。

2011-11-25 10:09:11 812

转载 error MIDL2025 : syntax error : expecting a type specification near "HRESULT"解决办法

在vc6.0用ATL建立一个COM组件,然后在接口定义中加入方法,会遇到编译错误:(1)error MIDL2025 : syntax error : expecting a type specification near "HRESULT"(2)error MIDL2026 : cannot recover from earlier syntax errors; aborting com

2011-11-24 18:13:07 6547 1

转载 创建COM组件全过程(C++)

一:创建一个接口        typedef struct InterfaceInterface ISimpleMsgBox : public IUnknown{ // IUnknown STDMETHOD_(ULONG, AddRef)() PURE; STDMETHOD_(ULONG, Release)() PURE; STDM

2011-11-24 16:00:53 17272 1

转载 类厂IClassFactory和组件的创建

CoCreateInstance是创建组件时使用得最多的一种方法,但由于其灵活性不足以满足所有组件的需求,因此引入了类厂。所有的组件都是类厂创建的。CoCreateInstance实际上也是按照一般发方法通过类厂来创建组件的。当客户直接使用类厂时,将能够获得更高的灵活性。1.        CoCreateInstance函数此函数需要一个CLSID参数来创建相应组件的一个实例,并返回此实

2011-11-24 15:30:18 2719

转载 引用计数和AddRef、Release

IUnknown 的另外两个方法:    即AddRef和Release方法.用这两个方法可以有效的管理组件的生命周期。一.引用计数三大规则  1.在返回接口指针时调用AddRefIUnknown* CreateInstance(){ IUnknown* pI = static_cast(new CA) ; pI->AddRef() ; retur

2011-11-24 15:20:25 3792

转载 IUnknown接口

一: 接口定义    任何一个接口都是继承于IUnknown接口。  客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是Iunkown,它的定义包含在Win32 SDK中的UNKOWN.h头文件中。interface IUnkown{ virtual HRESULT __stdcall QueryInterface(

2011-11-24 14:58:02 1239

转载 虚拟函数表和C++抽象基类

一.虚拟函数表      为什么用C++的纯抽象基类来实现COM接口是可行的呢?这主要是由于纯抽象类说定义的内存结构可以满足COM对接口的需求。当定义一个纯抽象基类时,实际上定义的是一个内存块的结构,且其所有的实现都是一些具有相同的基本结构的内存块。但是,此内存只有在派生类中实现此抽象基类时才会被分配。继承抽象基类的派生类,也将继承此内存结构。interface IX{ vir

2011-11-24 14:40:53 905

原创 托盘程序

VC里面要添加托盘图标和托盘菜单,大概过程: MSDN中介绍的结构体:typedef struct _NOTIFYICONDATA { DWORD cbSize;//结构体的大小 HWND hWnd;//窗口句柄 UINT uID;//图标关联的ID,需要和多个托盘图标关联时用到 UINT uFlags;//标识,表明该托盘图标需要修改的内容,如图标

2011-11-17 10:47:20 657

转载 CRC

/*-----------------------------------------------------------------------------* 函数: CalculateCRC* 功能: 计算CRC校验结果* 参数: pBuf----需要计算校验的b

2011-10-10 13:57:37 477

转载 RC4

#ifndef _ENCRYPT_RC4_#define _ENCRYPT_RC4_#include #include#include#define BOX_LEN 256int GetKey(const PBYTE pass, UINT pa

2011-10-10 13:55:01 778

转载 static 用法

对于一个程序,内存分配情况如下:      ============================     |                      代码区                             |    -------------------

2011-10-10 11:41:28 362

转载 C++中const用法总结

1.     const常量,如const int max = 100;优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误。2.

2011-10-10 10:41:27 345

原创 DLL 传递消息EXE

// MyClass.h: interface for the CMyClass class.////////////////////////////////////////////////////////////////////////#if !defined(

2011-10-08 16:02:11 540

转载 MFC规则DLL 概述

MFC规则DLL的概念体现在两方面:  (1) 它是MFC的               “是MFC的”意味着可以在这种DLL的内部使用MFC;  (2) 它是规则的            “是规则的”意味着它不同于MFC扩展DLL,在MFC规则DLL的内部虽然可

2011-10-08 15:24:17 430

原创 DLL导出类

DLL导出类  DLL中定义的类可以在应用工程中使用。#ifdef MYDLL_EXPORTS#define MYDLL_API __declspec(dllexport)#else#pragma message("auto to link the Tes

2011-10-08 15:21:53 581

转载 DLL导出变量

DLL定义的全局变量可以被调用进程访问;DLL也可以访问调用进程的全局/* 文件名:lib.h */#ifndef LIB_H#define LIB_H extern int dllGlobalVar;#endif/* 文件名:lib.cpp */

2011-10-08 15:12:47 6871

转载 静态链接库LIB和动态链接库DLL的区别 创建和示例

1.什么是静态连接库,什么是动态链接库         静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文

2011-10-08 14:50:16 601

转载 Windows CE 触摸屏(TouchPanel)驱动简析(2)-DDSI函数

1.DdsiTouchPanelAttach和DdsiTouchPanelDetach          DLL entry进入或结束执行,这里不需要任何工作,直接返回0LONG DdsiTouchPanelAttach(void){ return 1;}

2011-09-28 18:14:12 1226

转载 Windows CE 触摸屏(TouchPanel)驱动简析(1)-原理及驱动架构

触摸屏驱动从硬件读取用户输入,然后转换成一个触摸事件发送给GWES.同时将为计算的坐标转换为校准坐标.校准坐标对硬件异常,如触摸倾斜,非线性顺序做了补偿运算.触摸屏驱动正常工作时,当用户用触摸行为时需要提供该触摸点.当触摸结束时驱动必须提交至少一个事件以通知系统触摸笔已移除.

2011-09-28 17:03:49 2254

转载 C++的动态绑定和静态绑定

为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类

2011-09-28 15:18:35 453

原创 屏蔽系统快捷键

 添加PreTranslateMessage映射函数然后pMsg ->wParam == O && GetKeyState(VK_CONTROL)BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) {    if(pMsg ->message == WM_KEYDOWN)        if((pMsg ->wParam ==

2011-09-28 15:17:09 790

转载 WinCE6.0 DEVICEEMULATOR BSP的BackLight驱动简析

这里就WinCE6.0 DEVICEEMULATOR BSP的BackLight驱动做下分析, 更多关于电源管理的内容可以参考其他资料.一篇不错的文章是:http://www.cnblogs.com/we-hjb/archive/2010/01/27/1657973.html

2011-09-28 15:15:58 861

转载 Display the battery information

 Use this code to get Battery State     dwResult = 1  AC State     dwResult = 3  DC State          DWORD GetBatteryState() {#define GBS_HASBATTERY 0x1 #define GBS_ONBATTERY  0x2  // Retu

2011-09-28 15:11:26 1155

查找硬件设备

该源码主要用于查找设备信息,通过硬件设备的hardwareID以及friendname

2011-10-27

空空如也

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

TA关注的人

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