- 博客(58)
- 资源 (7)
- 收藏
- 关注
转载 单键模式
单键模式保证一个类只有一个实例!实现的方法一般如下:1,私有化所有构造函数,禁止外部随意构造对象;2,实现该类的唯一对象,并使该类的使用者通过某种方法访问该对象。遵循这种思想,我想到一个最简单的实现,便是定义该类的一个public的静态数据成员供外部使用即可。class Singleton{private: // 所有构造函数public: static Singleton m
2009-04-22 11:33:00
936
原创 在Mac下编译ImageMagick
在Mac下安装ImageMagick前,需要先安装一些第三方的库。这些库如下(有的是系统已经有的):安装在/usr/local下 libbz2libz2libfreetypelibjpeglibpnglibtifflibxml 然后开始安装ImageMagcik:./configure CPPF
2008-09-11 10:42:00
945
转载 WAVE格式
一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVEChunk, Format Chunk, Fact Chunk(可选), Data
2008-08-06 10:23:00
1046
转载 LNK 2005
最近调试遇到N多LNK错误,遂总结各解决方案如下, 以做系统学习之用。一编译器处理相关 .预处理器-编译器-汇编器-链接器预处理器会处理相关的预处理指令,一般是以"#"开头的指令。如:#include "xx.h" #define等。编译器把对应的*.cpp翻译成*.s文件(汇编语言)。 汇编器则处理*.s生成对应的*.o文件(obj目标文件)最后链接器把所有的*.o文件链接
2008-07-03 14:53:00
788
转载 #pragma预处理详解
在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #pragma para 其中para为参
2008-07-03 11:33:00
445
转载 Video Rendering with 8-Bit YUV Formats
Video Rendering with 8-Bit YUV Formats Gary Sullivan and Stephen Estrop Microsoft Digital Media DivisionApril 2002Updated August 2003Applies To: Microsoft® Windows®, Microsoft Dir
2008-06-19 14:41:00
731
转载 posix 线程调度
thread 调度 POSIX 定义一种优先级调度模型,此模型确定任何两个线程相对于对方的重要程度。 每当有一个以上的线程可以运行—执行就绪—时,系统都将选择具有最高优先级的线程。 POSIX 线程调度语义是按照一种概念模型定义的,在此概念模型中有一个有效优先级范围,并且有一组线程列表,每个优先级分配有一个列表。根据线程的调度优先级,将 任何可运行的线程放置在其中一个线程列表上。线程列表内的排序
2008-05-08 11:08:00
795
转载 unix设置线程优先级
如何在linux/unix中设置线程的优先级int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);来创建线程,但是如何设置线程的优先级呢?在讨论这个问题的时候,我们先要确定当前线程使用的调度策略,posix提供了int pthread_a
2008-05-08 11:06:00
2302
转载 最常见的几种光盘文件系统和光盘刻录方式
随着信息技术的不断发展,作为信息传输和记录功能的重要介质-光存储设备也在不断的改头换面。从早期的只读光盘CD-ROM,到可写的CD-R,到可擦写 CD-RW,到DVD-ROM等等,发展的速度一点也不比CPU,硬盘,显卡的发展速度慢。目前光盘刻录机大有取代CD-ROM成为计算机的标准配置之势。为了帮助用户更好的了
2008-04-26 17:25:00
2100
转载 setlocale
setlocale:函数原形为:char *setlocale( int category, const char *locale );头文件:所支持的操作系统为:ANSI, Win 95, Win NT对于简体中文可以使用如下设置:setlocale( LC_ALL, "chs" );为什么一定要调用setlocale呢?因为在C/C++语言标准中定义了其运行时的字符集环境为"C",也就是A
2008-04-11 10:25:00
8529
转载 %s 与 %ls的区别
#include cstdio>#include cstdlib>#include clocale>#include cwchar>int main(int argc, char * argv[])...{ wchar_t wstr[] = L"中文"; setlocale(LC_ALL, "zh_CN.UTF-8"); wprintf(L"%s/n"
2008-04-11 10:06:00
2409
2
转载 exec系列函数
exec用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID,exec启动一个新程序,替换原有的进程,因此这个新的被exec执行的进程的PID不会改变,和调用exec函数的进程一样。int exec…装入和运行其它程序:int execl( char *pathname,char *arg0,char *arg1,...,char *argn,NULL
2008-04-09 18:16:00
1062
转载 fork, wait, system
fork,vfork #include ; #include ; main () { pid_t pid; pid=fork(); if (pid printf("error in fork!"); else if (pid == 0) printf("i a
2008-04-09 17:41:00
1700
转载 Linux文件操作(三)
mkdir和rmdir我们可以使用mkdir和rmdir来创建和移除目录.其语法如下:#include int mkdir(const char *path, mode_t mode);mkdir系统调用可以用来创建目录,而这是与mkdir程序相等同的.mkdir以path为名字创建一个新的目录.目录的权限是由参数mode来指定的,而这也与open系统调用中的O_CREAT的选项是一样的,而且这也
2008-04-07 15:53:00
1166
转载 Linux文件操作(二)
标准I/O库标准I/O库以及他的头文件,提供了一个到底层I/O系统调用的一个万能接口.这个库并不是ANSI标准C的一部分,而我们在前面所谈到的系统调用也不是,但是这个库却提供了许多复杂的函数用来处理格式化输出以及描述输入.他同时也会小心的处理设备所要求的缓冲区.在许多方式上,我们可以用使用低层文件描述符的方式来使用这个库.我们需要打开文件建立访问路径.这会返回一个值,并会作为一个调用其他I/O库函
2008-04-07 15:52:00
637
转载 Linux文件操作(一)
使用文件在这一部分当中,我们将会讨论Linux的文件以及目录以及如何来管理他们.我们将会学习创建文件,打开文件,读取文件,写入文件以及关闭文件.我们也将会学习程序如何来管理目录(例如创建,扫描,删除).在上一部分当中我们使用Shell进行编程,而现在我们要开始使用C编程.在讨论Linux处理文件I/O之前,我们将会看一些与文件,目录以及设备相关的概念.要处理文件与目录,我们需要使用系统调用(与Wi
2008-04-07 15:50:00
666
转载 MAC OS X Programming 事件处理
转自:http://blog.youkuaiyun.com/atfield/archive/2007/03/02/1519639.aspx1 EventsCarbon Event Manager所支持的事件有两个属性:1. Event Class,表示事件的类别,如鼠标消息:kEventClassMouse2. Event Kind,事件的具体类型,如鼠标按键按下消息:kEve
2008-03-26 10:15:00
566
转载 MAC OS X Programming HelloWorld
转自:http://blog.youkuaiyun.com/atfield/archive/2007/03/01/1518747.aspxChapter 2 Overview of Mac OS X Programming1 Programming Environments1. Metrowerks CodeWarrior,Metrowerks开发的IDE,跨平台,支持多种语言,如C,C+
2008-03-26 10:03:00
593
转载 MAC OS X Programming 系统架构
转自:http://blog.youkuaiyun.com/atfield/archive/2007/03/01/1518651.aspxChapter 1 System Components and Programming Technologies1. Mac OS X IntroductionMac OS X是Apple最新一代的操作系统,基于UNIX,最显著的特点是有着极其漂亮的界面,
2008-03-26 09:56:00
1170
转载 API HOOK 金山词霸取词功能原理2
屏幕上的文字大都是由gdi32.dll的以下几个函数显示的:TextOutA、TextOutW、ExtTextOutA、ExtTextOutW。实现屏幕抓词的关键就是截获对这些函数的调用,得到程序发给它们的参数。 我的方法有以下三个步骤: 一、得到鼠标的当前位置 通过SetWindowsHookEx实现。 二、向鼠标下
2008-03-25 19:52:00
1192
2
转载 API HOOK 金山词霸取词功能原理1
1 屏幕抓词 屏幕抓词(或者叫动态翻译)是指随着鼠标的移动,软件能够随时获知屏幕上鼠标位置的单词或汉字,并翻译出来提示用户。它对於上网浏览、在线阅读外文文章等很有帮助作用,因此许多词典软件都提供了屏幕抓词功能。 屏幕抓词的关键是如何获得鼠标位置的字符串,Windows的动态链接和消息响应机制为之提供了实现途径。 概括地说,主要通过下面的几个步骤来取得屏幕上鼠标位置的字符
2008-03-25 19:51:00
2194
转载 DLL共享数据段
在主文件中,用#pragma data_seg建立一 个新的数据段并定义共享数据,其具体格式为: #pragma data_seg ("shareddata") //名称可以 //自己定
2008-03-25 19:46:00
1278
转载 Win32下的录音编程
引言在Win32 APIs基础上编写录音程序繁琐易错,使用封装好的类是个不错的注意。不幸的是所谓封装好的类对你而言,往往是代码罗嗦且功能不足,因此尽管你可能希望在某个项目上因使用封装好的类而避开Win32 APIs,可最终你发现你还得面对它。不是为了编写自己的类,就是为了修改别人的代码。Win32 APIs中有一组被称成多媒体控制接口(即MCI)的函数,该接口提供了多媒体编程所需的系统级A
2008-03-25 19:44:00
590
转载 Windows进程中的内存结构
在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Globa
2008-03-25 19:43:00
406
转载 Windows图像编程概要
图形设备接口(GDI,Graphics Device Interface)的主要目标之一是支持在输出设备(如视频显示器、打印机和绘图仪)上的与设备无关的图形。 GDI通过将应用程序与不同输出设备特性相隔离,使Windows应用程序能够毫无问题地在Windows支持的任何图形输出设备上运行。Windows中的图形基本上是由从GDI.EXE模块中输出的函数处理的(尽管一些绘制函数实际上具有USER.E
2008-03-25 19:42:00
582
转载 使用MAP文件快速定位程序崩溃代码行
作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统造成巨大的损失。但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现程序崩溃并不可怕,反而是测试的成功。我们更为关心的是程序中的哪一行导致了系统崩溃,这样我们才能有针对性的进行改正。 在VC中,我们可以利用出现程序崩溃时VC的自动跳转,定位到出错代码行。但在大量的压力
2008-03-25 19:39:00
468
转载 堆和栈的区别
1.申请方式 stack: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间 heap: 需要程序员自己申请,并指明大小,在c中malloc函数 如p1 = (char *)malloc(10); 在C++中用new运算符 如p2 = (char *)malloc(10); 但是注意p1、p2本身是在栈中的。 2 申请后系统的响应 栈:
2008-03-25 19:39:00
368
转载 _beginthread还是CreateThread
程序员对于Windows程序中应该用_beginthread还是CreateThread来创建线程,一直有所争论。本文将从对CRT源代码出发探讨这个问题。 I. 起因今天一个朋友问我程序中究竟应该使用_beginthread还是CreateThread,并且告诉我如果使用不当可能会有内存泄漏。其实我过去对这个问题也是一知半解,为了对朋友负责,专门翻阅了一下VC的运行库(CRT)源代码,终于
2008-03-25 19:30:00
558
转载 VC编译语法解释
VC- Project Setting-Debug-Project Option语法解释-优化- /O1 最小化空间 minimize space /Op[-] 改善浮点数一致性 improve floating-pt consistency /O2 最大化速度 maximize speed /Os 优选代码空间 favor code space /Oa 假设没有别名 assume no alia
2008-03-25 19:29:00
468
转载 LNK2001错误探究
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unresolv
2008-03-25 19:28:00
264
转载 VC文件格式
.opt 工程关于开发环境的参数文件。如工具条位置等信息; .aps (AppStudio File),资源辅助文件,二进制格式,一般不用去管他. .clw ClassWizard信息文件,实际上是INI文件的格式,有兴趣可以研究一下.有时候ClassWizard出问题,手工修改CLW文件可以解决.如果此文件不存在的话,每次用ClassWizard的时候绘提示你是否重建. .dsp (Develo
2008-03-25 19:26:00
351
转载 C语言文件操作函数大全
C语言文件操作函数大全clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #include 定义函
2008-03-24 19:06:00
412
转载 VC++程序编译链接的原理与过程
VC++程序编译链接的原理与过程我们在EX10这个工程中,选择菜单中【Build】→【Rebuild All】,重新编译所有的工程文件,可以看到如下输出:从这个输出中,我们可以看到可执行程序EX10.exe的产生,经过了两个步骤:首先,C++编译器对工程中的三个源文件fish.cpp、animal.cpp单独进行编译(Compiling…)。在编译时,先由预处理器对预处理指令(#inc
2008-03-24 10:57:00
571
转载 显示隐藏文件
方法1、简单的操作,用 OnyX 或者其他类似的系统工具,可以轻松设置是否显示隐藏文件。方法2、用“终端”,好处是不需要任何第三方工具,坏处是如果命令输错了,会有副作用。命令如下(注意其中的空格):显示:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏:defaults write com.apple.finder App
2008-03-21 14:07:00
399
转载 Mac OS X 系统下安装和删除程序的一般方法
Mac OS X 系统下安装和删除程序的一般方法通常Mac OS X下的程序都比较绿色,安装,就是托拽,删除,也是托拽说明白点:一,安装通常程序下载到硬盘上以后,多是dmg或者sit, zip, tar之类后缀的文件。镜像篇:镜像文件,双击即可在桌面上生成一个镜像,可以理解成pc下的虚拟光驱,双击镜像就是挂载上了虚拟光盘。打开后就可以看到镜像中的内容。通常情况下的程序都是可以直接运行的,那么直
2008-03-21 11:50:00
1179
转载 基于 Intel 的 Macintosh 启动顺序和错误代码、符号
基于 Intel 的 Macintosh 启动顺序和错误代码、符号翻译自 http://docs.info.apple.com/article.html?artnum=303363 以下是对基于 Intel 的 Macintosh 系统的启动顺序、错误情况和行为的概述。[开机]Boot-ROM/RAM 检查初始化完成[BootROM-POST]●黑屏,电源指示灯亮 - POST 或 BootR
2008-03-21 11:27:00
516
转载 提高 Mac OS X 速度的 52 个方法
1. 验证/修复磁盘权限在 应用程序/实用程序/磁盘工具.app 选择你的系统所在宗卷进行验证,如果有问题则修复(其实也可以直接点“验证并修复磁盘权限”反正修复之前必会先验证的)。注意非系统宗卷默认是忽略权限的,自然没有验证和修复的说法。2. 清除不需要的登录项目(就是登录的时候自动运行的程序)系统预置 - 帐户 - 登录项目,自己看着办,把不需要登录项目减掉。注意有一些程序即使去掉后还会自动再添
2008-03-21 11:22:00
640
转载 Mac 新手最容易犯的 30 項錯誤
[转帖]Mac 新手最容易犯的 30 項錯誤本文轉貼自老蘋果冰室,希望可以幫助一些剛接觸Mac的朋友 将应用软体的视窗关上,就以为已关闭(离开)该应用软体。正解:应该从选单中选择「结束」指令。 下载一个应用软体后,就在其装载至桌面的磁碟影像档视窗上开启并执行使用之。正解:应该先将该应用软体磁碟影像档装载至桌面上,然后将其中的应用程式拖至应用程式档案夹中。
2008-03-21 11:19:00
402
转载 Mac OS X 的文件系统
[入门] Mac OS X 的文件系统[ 整理自《 Mac OS X Help Desk 》中文译版 ]万维网( World Wide Web )是在运行基于 UNIX 的操作系统的一台 NeXT 计算机上发明出来的,所以 Web 地址看起来非常类似于文件的 UNIX 路径名也就不令人奇怪了。用一条路径来描述一个 Web 页面在 Internet 上的位置所使用的约定,基本上就是 Mac OS
2008-03-21 11:11:00
1563
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人