C、C++
perry_peng
***
展开
-
文件格式解析:mp1/mp2/mp3 解码(Python)
Python写的MP3解码器,效率太低仅作研究用。几种分层格式,从1到3,1是最简单,3最复杂。原创 2012-10-22 18:12:08 · 3370 阅读 · 0 评论 -
在VC中通过获得IActiveScript接口调用脚本
最近由于工作需要,开发的程式需要有二次开发的能力,我想到了脚本解析(PerlScript,JavaScript,VBScript...);经过N多次Google,终于弄了个非常简单的代码; 实现了接口IActiveScriptSitet和IDispatch以下是在类头文件中定义的子类 BEGIN_INTERFACE_PART(ActiveScriptSite,原创 2008-12-09 14:24:00 · 4384 阅读 · 0 评论 -
TINYC写个8052虚拟机(3) Intel MCS-805x寄存器定义
/// SFRs address, * denote the register can be bit addressable.#define REG_ACC 0xe0 /// * Accumulator#define REG_B 0xf0 /// * B register#define REG_PSW 0xd0原创 2013-01-11 21:20:29 · 1215 阅读 · 0 评论 -
TINYC写个8052虚拟机(2) Intel MCS-805x指令表.
#define iPush(x, o1, o2, o3, c, n) \ {x, o1, o2, o3, c, #n, OPC_##n}const iCode iCodeSet[] = { iPush(1, OP_NONE, OP_NONE, OP_NONE, 12, NOP), iPush(2, OP_CODE11, OP_NONE, OP原创 2013-01-11 21:18:34 · 874 阅读 · 0 评论 -
TINYC写个8052虚拟机(4) 宏定义。 .
#define REGx(x) csp->ram[REG_##x]#define RAMx(x) csp->ram[x]#define ROMx(x) csp->rom[x]#define BIT(a) (RAMx((a) & 0xf8) & (1 << ((a) & 0x07)))#define BIT_SET(a) RAMx((a) &原创 2013-01-11 21:29:33 · 669 阅读 · 0 评论 -
文件格式解析:快捷方式 (LNK文件)
#include /** The type of ShellLinkHeader and its pointer type. * The ShellLinkHeader type is an alias from the structure tagShellLinkHeader. * @{ */typedef struct tagLNK_OBJECT LNKOBJ, *P原创 2012-12-02 22:57:09 · 1890 阅读 · 0 评论 -
文件格式解析:图标文件 (icon file)
icon file原创 2012-11-07 19:53:47 · 1370 阅读 · 0 评论 -
FASM桌面截图片保存到文件
宏定义:macro fill buffer, count, [graylevel]{ local cnn push edi mov ecx, sizeof.BITMAP_CONTEXT mov edi, buffer xor eax, eax rep sto原创 2008-12-10 08:47:00 · 817 阅读 · 0 评论 -
文件格式解析:GIF文件
gif原创 2012-10-22 18:12:27 · 573 阅读 · 0 评论 -
Win平台高级编程:完成端口 (IOCP) serial functions
Completion Port serial functions, below are the APIs and their description * 1 CreateIoCompletionPort Associates an I/O completion port with one or more file handles, or creates an原创 2012-09-18 22:47:17 · 675 阅读 · 0 评论 -
Win平台高级编程:Waitable Timer serial functions
Waitable Timer serial functions, below are the APIs and their description: * 1. CreateWaitableTimer -- Creates or opens a waitable timer object. * 2. CreateWaitableTimerEx -- Creates原创 2012-08-10 22:31:15 · 1171 阅读 · 0 评论 -
Win平台高级编程:Interlocked Singly Linked Lists
Interlocked Singly Linked Lists系统函数:核心函数: InitializeSListHead, 初始化一个List对象。 主要参数:1. 列表头,指向SLIST_HEADER结构的指针,必须使用MEMORY_ALLOCATION_ALIGNMENT参数申请内存。 InterlockedFlushSList, 删除列表中所有项目并返回项目数组。原创 2012-08-10 22:30:18 · 781 阅读 · 0 评论 -
Win平台高级编程:异步I/O,Asynchronous I/O serial functions
* 1 CancelIo Cancels all pending I/O operations that are issued by the calling thread for a specified file handle. * 2 CancelIoEx Marks all pending I/O原创 2012-08-10 22:29:45 · 1201 阅读 · 0 评论 -
Win平台高级编程:网卡混杂模式抓包 (RAW SOCKET) -- 多线程IOCP完成端口
接收流经网卡的数据包,使用混杂模式。使用多线程+完成端口,数据处理部分和协议分析未完成。。。 /* Authors: perry peng * * Date: September 11, 2011 * * Project Name: * Project Version: * * Module: main.c * */#include #include #include原创 2012-08-10 22:29:20 · 5979 阅读 · 0 评论 -
芯片PIC32MX250F128B (MCHP) -- 32位高性能单片机
32-bit, PIC32, 50MHz, 128kB/32kB, USB/OTG/PWM/DMA/ADC/RTC/SPI/I2C/UART/I2S, 2.3V~3.6V, SOIC-28.原创 2012-07-01 19:22:26 · 2535 阅读 · 0 评论 -
芯片SN74LVCHR16245A (TI) 高速电平转换IC
16-Bit Bus Transceiver With 3-State Outputs, TSSOP-48.原创 2012-01-13 09:35:49 · 2184 阅读 · 0 评论 -
51驱动1.8寸TFT屏,H018IN01V8(NT3915)
闲着没事干,把以前老式联想手机给拆了,取出彩屏用51成功驱动并点亮。/* \file main.c - Keil C v8.02 * \brief source file for lcd_h018in01 project * Project id: 00595cf9-8de6-4a57-b940-eb0347ac9e13 * * \details This file is原创 2013-02-02 22:17:42 · 2717 阅读 · 0 评论 -
TINYC写个8052虚拟机(1) Intel HEX文件格式转换为BIN。
void cState_LoadHex(cStatePtr csp, const char *file){ FILE *fp; int ch; uint16 len, addr, rec_type, data; char buff[5]; fp = fopen(file, "r"); while (!feof(fp)) { ch =原创 2013-01-11 21:16:25 · 824 阅读 · 0 评论 -
使用联合与结构实现64位整数除法
大整数移动16位或8位。// Authors: perry peng// Date: Octember 09, 2012#include typedef unsigned char uint8, *puint8;typedef unsigned short uint16,*puint16;typedef unsigned int uint32,*puint32;typed原创 2012-03-12 13:05:17 · 2202 阅读 · 1 评论 -
几种串匹配算法
几种串匹配算法原创 2012-10-12 21:09:46 · 620 阅读 · 0 评论 -
通过API选择声卡输入通道
网上此类贴子很多,工作原理就不用介绍了,请看代码: // AudioInputChannel.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include #ifndef _INC_MMSYSTEM #include #pragma原创 2008-12-09 15:07:00 · 2347 阅读 · 0 评论 -
枚举系统中所有USB HUB设备
// HUB.cpp : 定义控制台应用程序的入口点。 // #include #include #include #include #include #include #include #include extern "C" { #include "cfgmgr32.h" #include "hidsdi.h"}#pragma comment(lib,"h原创 2008-12-10 09:04:00 · 5777 阅读 · 3 评论 -
使用WDM驱动实现在NT下读取物理端口,特殊寄存器,物理内存的代码(C++测试代码)
#include #include #include #include "libmio.h"#include "debug.h"using namespace std;CLibmio *gpLibio = NULL;int main( int argc, char* argv[]){ try { gpLib原创 2011-09-30 09:10:27 · 1577 阅读 · 0 评论 -
使用WDM驱动实现在NT下读取物理端口,特殊寄存器,物理内存的代码(C++驱动加载代码)
驱动写好后,要在应用程序中调用驱动还需要自己写一个驱动加载器,以下代码能够实现在Windows中加载驱动到系统中,并能调用驱动的I/O例程。编译成功后,把驱动sys文件与此代码编译好的exe放同一个目录。 cpp源文件:#include "libmio.h"using namespace std;CLibmio::CLibmio(void) throw (CLi原创 2011-09-30 08:58:31 · 1500 阅读 · 0 评论 -
在Win32环境中修改Lenovo笔记本引导设备启动顺序、恢复BIOS默认设置。
Changing BIOS settings To change a BIOS setting, complete the following steps: 1. Identify the BIOS setting you want to change using the Lenovo_BiosSetting class 2. Identify the value t原创 2011-10-24 12:47:25 · 6871 阅读 · 2 评论 -
DOS中调用INT13中断操作磁盘 tc3.0
通过调用中断操作磁盘,进行扇区操作。/* disk.cpp * * Source file for implementation of CDisk, * * Authors: perry * Date : February 21, 2011 * class : CDisk * * History: * 2011/02/21 perry原创 2011-10-26 15:24:25 · 2059 阅读 · 0 评论 -
关闭或打开笔记本触摸鼠标功能(TouchPad)
只能使用在Synaptics Touchpad且要安装Synaptics软件。#include #include "SynKit.h"int main( int argc, char* argv[]){ ISynAPI *pAPI = 0; if ( CoInitialize(0) || CoCreateInstance(_uuidof(SynAPI)原创 2011-10-26 16:50:16 · 3076 阅读 · 0 评论 -
LZW压缩算法源代码
// LZW.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #pragma warning (disable:4996)/* Basic LZW Data Compression program published in DDJ October 1989 issue. * Original Author: Mark R. Nelson * Upda转载 2008-12-10 09:25:00 · 3573 阅读 · 1 评论 -
COM实现系统SENS接口获取网络断开事件
ISensNetwork Interface从MSDN拷贝的关于ISensNetwork说明。查看实现源码。The ISensNetwork interface handles network events fired by the System Event Notification Service (SENS).When To ImplementImplement原创 2011-09-30 10:38:56 · 2794 阅读 · 0 评论 -
用C语言实现的Base64编码&amp;解码
Base64算法将输入的字符串或一段数据编码成只含有{''A''-''Z'', ''a''-''z'', ''0''-''9'', ''+'', ''/''}这64个字符的串,''=''用于填充。其编码的方法是,将输入数据流每次取6 bit,用此6 bit的值(0-63)作为索引去查表,输出相应字符。这样,每3个字节将编码为4个字符(3×8 → 4×6);不满4个字符的以''=''填充。原创 2008-12-10 08:58:00 · 1953 阅读 · 0 评论 -
Listico
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Filename : LISTICO.C * * Version : 1.0转载 2012-03-12 13:17:23 · 994 阅读 · 0 评论 -
GPXE
gpxe\archgpxe\bingpxe\configgpxe\coregpxe\cryptogpxe\docgpxe\driversgpxe\gpxe.ncbgpxe\gpxe.slngpxe\gpxe.vcprojgpxe\gpxe.vcproj.asia.wuzpk.usergpxe\hcigpxe\imagegpxe\include翻译 2012-03-12 12:57:03 · 1852 阅读 · 0 评论 -
Eyes
/********************************************************************\ EyeWatch -- Cursor Tracking Program. Written By: Paul L. Yao & Malcolm Austin\******************************************转载 2012-03-12 13:16:09 · 493 阅读 · 0 评论 -
使用IDeskBand2接口在Windows任务栏创建自己的窗口
IDeskBand2 Interface从MSDN拷贝的关于IDeskBand2说明。查看实现源码。 IDeskBand2 MembersCanRenderCompositedIndicates the deskband's ability to be displayed as translucent.CloseDWNotifies the原创 2011-11-22 14:44:05 · 4535 阅读 · 0 评论 -
列举当前登陆的用户
int main(argc, argv) int argc; char *argv[];{ LPWKSTA_USER_INFO_0 /* * This structure contains the name of the user on a specified workstation. */ buffer = NULL,原创 2012-09-20 18:23:29 · 835 阅读 · 0 评论 -
列举当前连接的会话
int main(argc, argv) int argc; char *argv[];{ NTSTATUS status; PSECURITY_LOGON_SESSION_DATA // This structure contains information about a logon session. data = NULL;原创 2012-09-20 18:24:09 · 546 阅读 · 0 评论 -
STM8汇编 STM8S103F3汇编操作三轴电子指南针HMC5883(I2C接口)
博客http://p168.gotoip1.com原创 2016-09-20 21:42:28 · 630 阅读 · 0 评论