自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DSP上的C标准库

<br />DSP毕竟不同于PC机,TI实现的DSP的C标准库中很多都是通过上位机实现的。比如printf等I/O输入输出都是与CCS环境紧密联系一起的,time()函数也是这样,在DSP上运行time()时,会得到上位PC机的时间。比如如下代码:<br />//while(0){ time_t timer; struct tm *tblock; timer=time(NULL); tblock=localtime(&timer); printf("Lo

2011-04-12 22:02:00 1461

原创 Lua 5.1.4 在DSP上的移植

Lua 是 1993年由Waldemar、Luiz和Robero开始开发的一门轻量级的嵌入式语言。相比于其它脚本语言,Lua小巧精致,没有庞大的功能库,有的只是几个最基本的标准库以及唯一的一个数据结构table,然而基于这些基本的特性,我们可以很方便的实现面向对象,函数式编程等特点。不记得是什么时候第一次听说Lua,但是刚开始有印象好像是在玩Angry Birds的时候发现这个游戏的场景文件的扩展名为.lua。曾经一直在猜测魔兽世界的插件是用什么写的,看见Angry Birds应用了Lua,并且听说Lua在

2011-04-12 20:25:00 2298

原创 将manifest嵌入到应用程序中

两种方法<br />有两种方法可将清单嵌入应用程序或库中。<br />如果不执行增量生成,可以将如下命令行用作后期生成步骤来直接嵌入清单:<br />mt.exe –manifest MyApp.exe.manifest -outputresource:MyApp.exe;1<br />或者<br />mt.exe –manifest MyLibrary.dll.manifest -outputresource:MyLibrary.dll;2<br />(1 表示 EXE,2 表示 DLL。)<br />如

2010-07-30 09:43:00 1063

原创 需要一种有效的信息传递机制

这里所说的有效的信息传递是指将信息通过一定的途径由一个工作环境转移到另一个工作环境,比如说本地局域网或Internet上的两台机器,同一台机器上的两个操作系统。

2010-06-14 15:51:00 664

原创 attrib工具的使用方法

<br />一定要/S /D<br />attrib -s -h /S /D<br />这样会取消所有文件夹及子文件夹的隐藏属性

2010-06-14 08:04:00 713

原创 hpbasic

<br />#ifndef __HPBASIC_HPP__#define __HPBASIC_HPP__//通过此文件将一些通用的东西进行有效地封装//1.封装null的定义//2.封装基础的泛型节点的定义//3.封装有关异常的信息//4.提供一个通用的异常转换为字符串函数#include <string>#include <exception>using std::string;#ifndef null#define null 0#endifte

2010-06-11 16:38:00 1142

转载 C++类访问控制

原帖如下 1 #include  2 using namespace std; 3  4 class A{ 5 public: 6     A(int i_,int j_) 7     { 8         i=i_; 9         j=j_;10     }11     void disp(A &a)12     {13

2010-05-26 17:23:00 587

原创 关于常量引用

C++的常量引用 如果是对一个常量进行引用,则编译器首先建立一个临时变量,然后将该常量的值置入临时变量中,对该引用的操作就是对该临时变量的操作。对常量的引用可以用其它任何引用来初始化;但不能改变。关于引用的初始化有两点值得注意:(1)当初始化值是一个左值(可以取得地址)时,没有任何问题;(2)当初始化值不是一个左值时,则只能对一个cons

2010-05-26 17:13:00 564

原创 vim插件

acomment 智能注释注释、反注释的插件,比较有特色的是头部注释,尽量做到智能了,会根据不同的用户名更新代码头部的注释,并且更新方式和内容是可以自定义的。放到vim主文件夹的plugin目录即可,linux下是 ./vim/plugin/然后,按两次 /ct 试试 NERDComment 这是一款供Vim使用的插件,看名字可以知道,它和The NERD Tr

2010-05-18 21:27:00 695

转载 程序员的十层塔

自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。 那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少

2010-05-15 15:19:00 761

原创 ar命令使用方法

ar 命令用途维护链接编辑器使用的索引库。语法ar [  -c ] [  -l ] [  -g | -o ] [  -s ] [  -v ] [  -C ] [  -T ] [  -z ] {  -h |  -p |  -t |  -x } [  -X  {32|64|32_64}] ArchiveFile [ File ... ]ar [  -c

2010-05-15 14:37:00 977

原创 LS文法绘图系统

//ls.h#ifndef __LS_H__#define __LS_H__#include #include #include #include #ifndef PI#define PI 3.1415926f#endifusing namespace std;/**********************************************

2010-05-15 14:16:00 719

原创 修改了部分bug的piano程序

/************************************************************* * Author : Haipeng * Date : 2010/4/10 * Last Compile : 2010/5/2 * Description : Piano GUI **********************

2010-05-15 14:12:00 538

原创 莫为浮云遮望眼,别怕‘WinMain’

对于win32SDK的程序设计,我们习惯于用WinMain了。但是那并不是C语言的标准啊。到底main还能不能用了呢?答案是肯定的,我们用glut,QT,openCV的时候窗口不也是显示出来了吗?仔细考虑WinMain的原型int WINAPI WinMain( __in HINSTANCE hInstance, __in HINSTANCE hPrevInstance,

2010-05-15 13:59:00 812 1

转载 C++ 开源跨平台类库集

在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下 用你喜欢的编译器 重新编译即可经典的C++库   STLport-------SGI STL库的跨平台可移植版本,在以前有些编译器离符合         标准比较远的情况下 那时还是有用的,当然目前vc71已经比较接近标准了,         故目前不怎么用它了。  

2010-05-15 13:56:00 555

原创 环境变量设置大全

本文列出各种有用的环境变量设置。一. GCC[一下这段文字摘自http://blog.csdn.net/zblue78/archive/2007/02/01/1499717.aspx]有大量的环境变量可供设置以影响 GCC 编译程序的方式。利用这些变量的控制也可使用合适的命令行选项。一些环境变量设置在目录名列表中。这些名字和 PATH 环境变量使用的格式相同。特殊字符 PA

2010-04-15 19:02:00 923

原创 GCC 环境变量设置

Environment variablesThe search paths for header files and libraries can also be controlledthrough environment variables in the shell. These may be setautomatically for each session using th

2010-04-15 19:01:00 1127

原创 新的改进了的Piano程序

/************************************************************* * Author : Haipeng * Date : 2010/4/10 * Description : Piano GUI **************************************************

2010-04-12 22:09:00 963 1

转载 堆和栈的区别

什么是堆栈  在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。  堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。  要点:  堆:顺序随意  栈:后进先出(Last-In/First-Out)堆和栈的区别  一、预备知识—程序的内存分配

2010-04-12 22:08:00 408

转载 C++ 编译器的函数名修饰规则

http://mxdxm.javaeye.com/blog/510486C++ 编译器的函数名修饰规则函数名字修饰(Decorated Name)方式    函数的名字修饰(Decorated Name)就是编译器在编译期间创建的一个字符串,用来指明函数的定义或原型。LINK程序或其他工具有时需要指定函数的名字修饰来定位函数的正确位置。多数情况下程序员并不需

2010-04-12 21:55:00 516

原创 基于批处理的项目模板生成工具

project.bat@echo offif exist "c:/users/haipeng/codes/templates/%1" ( if exist "%2" ( echo %2 already exist! ) else ( cp -r "c:/users/haipeng/codes/templates/%1" %2 if "%3"=="-i"

2010-03-28 18:43:00 612

原创 windows RC文件的编写及编译

对于windows的RC文件用GCC编译也是很EASY的,windres这个GNU Binary Utility是个非常有用的工具,我们只要windres -i resource.rc -o resource.o即可生成GCC可用的库,于是在gcc -o dialog dialog.c resource.o -mwindows就可以了。下面是来自http://ftp.gnu.org/old

2010-03-28 16:47:00 7135

原创 dwm的尝试

dwmapi的出现已不是什么新鲜的事情,早在2006年VISTA推出时就已经有了吧,但是那是我显然还不会编程。而时至今日,这方面的例子还不是很充分,虽然网上有一些例子,但都不是我所想要的简简单单的例子。而且例子大都是来自codeproject上的。我在那个网站上找过一些dwm的demo,印象最深,一直留着的是unmanaged C++ power,因为我也不是很喜欢managed c++。可是那是

2010-03-28 15:42:00 819

转载 C编码规范

1.排版1-1:程序块要采用缩进风格编写,缩进为4个空格,一般编辑器都可以设置,敲Tab键会自动插入4个空格。VC6中在Tools-Options-Tabs下设置。1-2:相对独立的程序块之间、变量声明之后必须加空行。1-3:较长的语句(>90字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可

2010-03-27 23:17:00 457

原创 改进了的电子琴程序

#include #include typedef union _midi { DWORD dwData; BYTE bData[4];} MIDI;void printtable(void);int main(int argc,char **argv){ unsigned long result,device; HMIDIOUT h

2010-03-27 12:45:00 1061 2

原创 midi音阶对照表

下表列出的是与音符相对应的命令标记。八度音阶||                    音符号  #  ||      || C  | C#  | D  | D#  | E  | F  | F#  | G  | G#  | A  | A#  | B--------------------------------------------------------------------

2010-03-27 12:44:00 9716

原创 自制的电子琴程序

哈哈,有了上一篇文章做为基础,并且还有另一篇非常有用的文章,已经传到了google上。尝试了几下,终于写了个电子琴程序:#include #include typedef union _midi { DWORD dwData; BYTE bData[4];} MIDI;int main(int argc,char **argv){ unsign

2010-03-27 00:26:00 2345 3

原创 使用midi*函数进行音乐播放

早在刚学习MFC的时候就差了很多关于音乐播放的事,知道了一些winmm.dll中的函数,不过当时印象最深的是mci*函数,可以用来播放各种媒体音乐,还能控制光驱的开关。毕竟刚学习程序的人都是最先关心两件事,一个就是多媒体控制,另一个就是硬件的端口控制,mciSendString就恰好兼具两个特性。后来找了好多资料来了解midi,但因为不知道应该用什么来操作midi设备,所以没有着手学习midi,始

2010-03-26 13:13:00 3973

转载 libpcap库函数介绍(附源代码)

libpcap的英文意思是 Packet Capture library,即数据包捕获函数库。该库提供的C函数接口可用于需要捕获经过网络接口(只要经过该接口,目标地址不一定为本机)数据包的系统开发上。由 Berkeley大学Lawrence Berkeley National Laboratory研究院的Van Jacobson、Craig Leres和Steven McCanne编写

2010-03-20 20:53:00 578

原创 ubuntu10.04窗口标题栏按钮位置

由于系统故障,我只能重新安装系统,借故安装了UBUNTU10.04,起初一切还好好的,可是重新启动后,不知何故,最小化按钮,最大化按钮以及关边钮跑到窗口的左边了,好不习惯。查了良久,终于找到解决方发了,$gconf-editor然后找到/apps/metacity/general”,在button_layout项里面,默认的值是“menum:maxmize,minimize,close”

2010-03-20 08:44:00 991

原创 GCC中的段

在看AVR单片机的GCC书中,发现了.init,.fini段,是可以用来进行初始化的,上网查了以下,发现linux下的普通elf文件果然也有.init,.fini段,但是似乎没有分成9份那么多。于是决定试一试将函数放在.init,或者放在.fini段中是否会真的在main之前执行,__attribute__((section(".init")))结果的确是函数在main之前执行了,但是main

2010-03-19 09:05:00 1441

原创 标准IO测试

之前弄的IO测试不太好使,这回从官方网站上搜索到一个标准IO的实例,经过自己的整理,修减终于弄成了一个完整的好使的程序。哈哈,不过还没有进行优化删减,所以还不能保证这是最减模式。#include #include #define BAUDRATE 9600#define F_CPU 12000000#define RX_BUFSIZE 80char g_aString[8];

2010-03-18 23:09:00 1102

原创 使用C语言操作串口

其实这并不是一件很难的事,在自己动手实验之前,我自然是知道现代操作系统都将设备看成文件来处理,这无疑降低了程序员操作硬件的难度,使用标准IO就可以操作硬件。我上网查了一下“windows C语言 串口”,希望能得到一些示例,但是没有成功,我得到的不是用CreateFile就是用这个模块那个模块,甚至扯上了用BIOS等恐龙时代的东东。无语,还是自己试一下的好。#include int mai

2010-03-17 20:46:00 28590 14

原创 熔丝风波

最近要学习AVR编程,可是发现只用Proteus仿真太没意思了,于是弄了一个U口转串口,来学习真正的AVR编程。但是这是个好迷茫的过程。虽然身边有N多的牛人!!但是我觉得应该自己学。万事总应有个先后顺序,但是我却有自己的学习方式,我决定先从串口通信学起,因为只有串口调试弄明白了,才能监控程序的输出,在没有特殊显示设备的情况下得到计算的数据。输入输出最简单的方法当然就是用printf,scanf了。

2010-03-15 21:37:00 920

原创 glutWireTeapot()尝鲜

glutSolidTeapot()还有glutWireTeapot()函数用来生成著名的茶壶。我的减而又减,看不出3D效果的平面茶壶程序:#include #include void RenderScene(void){ glClear(GL_COLOR_BUFFER_BIT); glutWireTeapot(0.6f); glFlush();}void Set

2010-03-15 20:58:00 9313 1

原创 库调用,系统调用

通过这个问题,可以判断候选人是否具有丰富的编程经验以及是否具有找出这类问题答案的敏锐感觉。 简明的回答是:函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。你要确保弄懂“trap(自陷)”这个关键字的含义。系统调用是在操作系统内核发现一个“trap”或中断后进行的。 ※函数库调用 VS 系统调用 函数

2010-03-14 17:46:00 538

原创 原语

原语   primitive or atomic action 是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性.即原语的执行必须是连续的,在执行过程中不允许被中断   不同层次之间对话的语言称为原语,即不同层之间通过原语来实现信息交换。  原语分为四类:请求(Req)型原语,用于高层向低层请求某种业务;证实(C

2010-03-14 17:43:00 627

原创 opengl杂七杂八

在用opengl宝典学习第二个例子,即画一个矩形的时候我想偷懒一下,于是根本就没写ChangeSize函数,也没有用glutReshapeFunc()调用,而是直接进行glRectf()调用,但是无论如何也并不显示出矩形来。于是我有按照书上的敲了一编,这次就出现了。很迷茫。不是只要窗口不改变大小就不用调用glutReshapeFunc()吗,那么有没有应该没有关系啊,即使是在glutReshape

2010-03-14 17:34:00 1348

原创 关于glFlush()等等

在windows下学习openGL,可以使用强大的windowsAPI,比如在glutDisplayFunc()所调用的回调函数中使用Sleep()来间断代码的执行,可以清晰地看到各个函数的作用,通过在glFlush()前面加Sleep(),可以发现虽然函数被调用了,可是并没有输出,因为openGl的机制是将这些命令放在 帧缓冲中,而一次用glFlush()将其输出到显示其上。还有当窗口被覆盖

2010-03-13 13:18:00 1985

原创 回调函数

 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 

2010-03-13 13:07:00 301

空空如也

空空如也

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

TA关注的人

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