自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 centos 32位安装vlc

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpmrpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386.rpmrpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txtyum install

2011-11-28 15:55:36 1444

原创 计算二进制位中1的个数

还不理解这个牛逼的算法,怪不得面试的时候会出到这个题:#define POW(c) (1<<(c))#define MASK(c) (((unsigned long)-1) / (POW(POW(c)) + 1))#define ROUND(n, c) (((n) & MAS

2011-07-21 21:43:44 946

原创 使用mencoder进行视频分割

mencoder input_file -o output_file -ss 30 -endpos 60 -oac copy -ovc copy以上命令可以截取视频文件从30秒开始持续1分钟的内容保存到output_file。如果仔细看输出的视频,会发现视频确实恰好有一分钟,但开始时间并不是准确的原视频的第30秒。在mplayer的文档中,关于这点写到mencoder定位在离-ss指定时间最近I帧。一般对于截取视频来说这样的误差可以了,但我现在要对视频文件进行分割、转码、合并,视频就会不连续。即如果再分割m

2010-11-29 19:02:00 2306 2

翻译 linux防火墙与路由设置

      当网络数据包通过网络适配器之后,都要通过路由和防火墙才能到达目的主机或网络(多网卡时),当一个应用发送一个数据时,内核创建的数据包也要通过路由和防火墙。Linux内核定义了三种过滤规则或链(chains):INPUT、OUTPUT和FORWORD。在2.4内核后,Linux对这三种规则做了很大的调整,简化了过滤逻辑,我在这里只写2.4内核的规则。所有网卡接收到的数据包,都先要通过路由,路由之后的数据包如果到达本机,则要通过INPUT的过滤,而到达其他网卡的数据包要通过OUTPUT过滤。对于本机发

2010-11-11 23:09:00 2233

转载 PXE远程安装Linux

简要说明:1. 配置DHCP服务:安装dhcpd,修改/etc/dhcp/dhcpd.conf(本机IP 192.168.16.254)option space PXE;  option PXE.mtftp-ip code 1 = ip-address;  option PXE.mtftp-cport code 2 = unsigned integer 16;  option PXE.mtftp-sport code 3 = unsigned integer 16;  option PXE.mtftp-tm

2010-11-05 14:53:00 1956

原创 SSH error:a public key file has not been specified by this session

<br />可能是SSH客户端没有开启密码验证,或者SSH服务端不允许密码验证。<br />服务端开启密码验证的方法:修改/etc/ssh/sshd_config的PasswordAuthentication项为yes,重启服务($service sshd restart)

2010-09-29 09:58:00 16909 7

翻译 动态链接库(DLL) (含进程通信之共享内存)

<br /> <br />简单的DLL<br />/*---------------------- EDRLIB.H header file ----------------------*/#ifdef __cplusplus#define EXPORT extern "C" __declspec (dllexport)#else#define EXPORT __declspec (dllexport)#endifEXPORT BOOL CALLBACK EdrCent

2010-09-21 22:55:00 7048

翻译 多线程

<br /><br />CreateThread(&security_attributes,dwStackSize,ThreadProc,pParam,dwFlags,&idThread):第一个参数是SECURITY_ATTRIBUTES指针,Windows 98忽略这个参数,Windows NT中也可为NULL。第二个参数是初始栈大小,0表示默认值。第三个参数是线程函数指针,ThreadProc必须按以下方式声明<br />DWORD WINAPI ThreadProc(PVOID pParam)。<b

2010-09-20 21:53:00 1063

翻译 多文档接口(MDI)

<br /><br />MDI的元素<br />一个主窗口,包括标题栏、工具栏、菜单栏、系统菜单图标、可拉伸边框、最大最小化按钮、客户区。客户区不直接显示输出,而是有0个或多个子窗口,每个子窗口显示一个文档。<br />子窗口很像主窗口,只是没有菜单栏。在同 一时刻只有一个子窗口是激活的。<br />MDI看起来用子窗口可以实现,但当研究一下现有的MDI应用程序,就会发现实现起来需要复杂的编码。<br /> <br />MDI接口<br />Windows 98 MDI包括一个窗口类、五个函数、两个结构体和

2010-09-20 09:30:00 2904

翻译 文本和字体

简单的文本输出TextOut(hdc,xStart,yStart,pString,iCount):xStart是第一个字符的水平位置,但这个参数的意义可以用SetTextAlign改变,TA_LEFT为默认方式,TA_RIGHT则xStart是最后一个字符的水平位置,TA_CENTER则xStart是中间字符的水平位置。同样,TA_TOP、TA_BOTTOM和TA_BASELINE表示yStart的意义——字符在垂直方向的位置,TA_TOP为默认。如果用TA_UPDATECP标记,则系统忽略xStart和y

2010-09-11 22:57:00 1787

翻译 设备无关位图 DIB

结构体DIB文件有四个主要部分:    文件头(file hearder)    位图信息头(information header)    RGB颜色表(RGB color table),24位位图没有    位图像素(bitmap pixel bits)DIB在内存中的格式只有后面三个部分,没有文件头。DIB的结构体都定义在WINGDI.H头文件中。文件头结构体(bmfh):typedef struct tagBITMAPFILEHEADER{ WORD bfType; DWORD bfSiz

2010-08-29 16:56:00 2432

翻译 位图

Bit-Block Transfer相比图元文件,位图有两个大缺点,一是易受设备依赖性问题影响。比如在一个单色设备上显示位图经常不会令人满意;还有位图的缩放,经常涉及到行或列的重复或丢弃,这样会造成缩放位图的混乱。第二个缺点是位图占用存储空间大。然而,位图最大的优点是速度,显示位图要比图元文件快得多。GetDeviceCaps的BITSPIXEL和PLANES参数获取显卡的颜色参数。BitBlt(hdcDst,xDst,yDst,cx,cy,hdcSrc,xSrc,ySrc,dwROP):把hdcSrc(x

2010-08-27 20:55:00 1617 1

翻译 打印机

打印机信息OpenPrinter (szDevice, &hPrint, NULL):得到打印机szDevice的句柄PrinterProperties (hwnd, hPrint):打开打印机属性页,也可以用驱动提供的ExtDeviceMode或ExtDeveModePropSheet函数,但推荐这个。ClosePrinter(hPrint)GetDeviceCaps(hdcInfo,index):获取设备参数。RASTERCAPS返回打印机是否支持位块(bit-block)转换,在部分点阵、激光、喷墨打

2010-08-26 23:26:00 3192

翻译 剪切板

<br /> <br />剪切板数据格式有三类:文本(text)、位图(bitmap)和元文件(metafile),每类又有细分,定义在WINUSER.H中,CF_开头。<br />写入剪切板<br />GlobalAlloc(GHND | GMEEM_SHARE,nSize):返回一个全局句柄<br />GlobalLock(hGlobal):返回内存块指针。<br />写数据<br />GlobalUnlock(hGlobal)<br />OpenClipboard(hwnd):任何时候只能有一个程序打

2010-08-14 23:28:00 3005

翻译 资源——对话框(Dialog Box)

一般菜单项的后面加省略号(...)提示该菜单会激活一个对话框。对话框的坐标X轴以对话框所用字体宽度的1/4为单位,Y轴以字体高度的1/8为单位。对话框处理过程与窗口处理过程很相似,但也有一些不同,对话框过程不是窗口过程。一般在对话框处理过程中,我们只需要处理子窗口控件的初始化、子窗口控件消息和结束对话框。下面是一个对话框过程:BOOL CALLBACK DlgProc(HWND hDlg,UINT message,WPARAM wParam,lParam){ switch(message)

2010-08-13 17:21:00 3641

翻译 资源——菜单(Menu)与快捷键(Keyboard Accelerators)

<br />创建载入菜单<br />wndcls.lpszMenuName=MAKEINTRESOURCE(IDM_MENU),也可用LoadMenu(hInstance,MAKEINTreSOURCE(IDM_MENU)),后者要在CreateWindow中传入菜单句柄或者在窗口创建后调用SetMenu(hwnd,hMenu)。挂在窗口上的菜单在结束时都会被销毁,所有没有挂在窗口的菜单在程序结束前都要用DestroyMenu销毁。<br /> <br />菜单消息<br />WM_INITMENU:在选择

2010-08-13 00:19:00 2373

翻译 资源——图标(ICON)、鼠标、字符串资源、自定义资源

<br />ICON<br />LoadIcon(hInstance,MAKEINTRESOURCE(IDI_MYICON)):IDI_MYICON是资源标识,定义在resource.h里。<br />LoadIcon(hInstance,TEXT("MYICON"):修改资源标识为"MYICON"(包括引号)或者修改.rc文件的IDI_MYICON ICON "icon.ico" 一行中的IDI_MYICON为"MYICON"(不包括引号),可以以字符串加载。<br />GetSystemMetrics(

2010-08-12 16:26:00 2275

翻译 子窗口控件——列表框(List Box)

窗口类型"listbox"。默认的列表框给父窗口发送WM_COMMAND消息,所以几乎所有列表框都加LBS_NOTIFY,允许列表框发送WM_COMMAND,LBS_SORT可以让列表自动排序。LBS_MULTIPLESEL创建多选列表框。LBS_NOREDRAW会在添加列表后阻止列表更新,也可以利用WM_SETREDRAW消息。另外还可与WS_BORDER、WS_SIZEBOX、WS_CAPTION一起使用。Windows定义了常用的风格LBS_STANDARD,它定义为(LBS_NOTIFY | LBS

2010-08-11 22:17:00 2557

翻译 子窗口控件——文本框(Edit Control)

<br />CreateWindow(TEXT("edit"),NULL,WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL,0,0,0,0,hwnd,(HMENU)ID_EDIT,hInstance,NULL);ES_NOHIDESEL还可使失去输入焦点时,选择的文字仍然高亮。<br /> <br />WM_COMMAND

2010-08-11 17:05:00 1320

翻译 子窗口控件——滚动条控件(Scroll Bar)

SBS_VERT和SBS_HORZ。点击滚动条控件,给父窗口发送的是WM_VSCROLL或WM_VSCROLL而不是WM_COMMAN。消息的lParam是窗口句柄,wParam与窗口滚动条一样,低字是通知码(SB_LINEUP等),高字是滚动块的位置。可以用GetSystemMerics(SM_CYHSCROLL)得到窗口垂直滚动条的长度,用SM_CXVHSCROLL参数得到水平滚动条的宽度。在对话框中,可以用SBS_LEFTALIGN等设置滚动条的停靠。一些函数:SetScrollRange(hwndS

2010-08-11 11:22:00 2792 1

翻译 子窗口控件——静态控件(Static)

创建      使用"static"做为窗口类型创建静态窗口控件。类型      SS_BLACKRECT、SS_BLACKFRAME、SS_GRAYRECT、SS_GRAYFRAME、SS_WHITERECT、SS_WHITEFRAME。“RECT”类型是填充的矩形,”FRAME“是不填充的矩形。BLACK、GRAY和WHITE并不是控件颜色,而是系统色:BLACK——COLOR_3DDKSHADOW、GRAY——COLOR_BTNSHADOW、WHITE——COLOR_BTNHIGHLIGHT。    

2010-08-11 10:21:00 2918

翻译 子窗口控件——按钮(BUTTONS)

创建子窗口      示例:CreateWindow(TEXT("button"),TEXT("PUSHBUTTON"),WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,50,100,LOWORD(GetDialogBaseUnits())*13,HIWORD(GetDialogBaseUnits())*7/4,hwnd,(HMENU)1,((CREATESTRUCT *)lParam)->hInstance,NULL);       TEXT("button")是窗口类型,系统

2010-08-10 11:38:00 2520

翻译 日期和时间

GetLocalTime(&st):与时区有关GetSystemTime(&st):Ust是SYSTEMTIME结构体。GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ITIME, szBuffer,2):szBuffer[0]=='1'则表示系统为24时制。GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ITLZERO, szBuffer, 2): szBuffer[0]=='0'表示系统不显示数字前的0。未完成

2010-08-08 23:57:00 674

翻译 定时器

<br />函数:<br />SetTimer KillTimer<br />消息:<br />WM_TIMER<br />说明:<br />      理论上SetTimer可以设置1到4294967295(将近50天)毫秒的时间间隔,但Windows 98最小时间间隔为55毫秒,Windows NT大约是10毫秒,而且定时不准确,比如在Windows 98下设置1000毫秒的定时,实际上只有989毫秒。WM_TIMER和WM_PAINT一样,优先权较低,只有当消息队列中没有消息时,才会产生消息,对于消息

2010-08-08 23:39:00 702

翻译 子窗口程序示例

#include #define DIVISIONS 5LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);LRESULT CALLBACK ChildWndProc(HWND,UINT,WPARAM,LPARAM);TCHAR szChildName[]=TEXT("ChildWindow");int idFocus=0;int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPre

2010-08-08 13:44:00 787

翻译 鼠标

函数:GetSystemMetrics(SM_MOUSEPRESENT):鼠标可用返回TRUE,不可用返回FALSE,但Windows 98总返回TRUE。GetSystemMetrics(SM_CMOUSEBUTTONS):返回鼠标的键数。鼠标不可用返回0(Windows 98返回2)。GetSystemMetrics(SM_SWAPBUTTON):鼠标是否是左手习惯。一般来说程序不需要知道这个,因为操作系统屏蔽了这些,即使左手习惯点了右键,也产生的是左键的消息。但是在一些程序中如果要监控物理鼠标点击的是

2010-08-07 11:49:00 902

翻译 光标(Caret)

常用函数:CreateCaretSetCaretPosShowCaretHideCaretDestroyCaretGetCaretPosGetCaretBlinkTimeSetCaretBlinkTime光标使用的一些规则:1. 如果程序中用到光标,不能简单的在处理WM_CREATE消息时调用CreateCaret,在处理WM_DESTROY消息时调用DestroyCaret。因为如果程序中有多个窗口,Windows只共享一个光标。简单的方法是,在WM_SETFOCUS中调用CreateCaret,在WM_

2010-08-06 21:25:00 1907

翻译 键盘

四种击键消息:WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN、WM_SYSKEYUP。一般与ALT键结合的击键会产生系统击键消息,交由Windows处理(DefWindowProc)。对所有四种消息,wParam是虚拟键码,表示按下或弹起。lParam是击键的数据。

2010-08-06 00:41:00 580

翻译 PeekMessage与GetMessage

<br />GetMessage(&msg,NULL,0,0)为阻塞函数,如果消息队列中没有消息,GetMessag就一直阻塞,如果收到WM_QUIT则返回FALSE。<br />PeekMessage(&msg,NULL,0,0,PM_REMOVE)不阻塞,如果消息队列中没消息返回FALSE,有消息返回TRUE。<br />PeekMessage的第五个参数PM_REMOVE表示消息是要从消息队列中移除,也可设为PM_NOREMOVE,作用相反。<br />GetMessage与PeekMessage都不

2010-07-28 00:02:00 790

翻译 矩形、区域相关

FillRect(hdc, &rect, hBrush)用hBrush填充rect。hBrush可以不选入hdc就可直接使用。FrameRect(hdc, &rect, hBrush)用hBrush画矩形边框InvertRect(hdc, &rect)把rect内所有像素颜色取反RECT结构结构体操作函数:SetRect(&rect,xLeft,yTop,xRight,yBottom)OffectRect(&rect,x,y):移动rectInflateRect(&rect,x,y): 改变rect大小Se

2010-07-27 22:27:00 919

原创 GDI 映射模式

<br />Windows 在WINGDI.H里定义了八种GDI映射模式:MM_TEXT、MM_LOMETRIC、MM_HIMETRIC、MM_LOENGLISH、MM_HIENGLISH、MM_TWITPS、MM_ISOTROPIC和MM_ANISOTROPIC。可使用SetMapMode(hdc, iMapMode)选择映射模式。<br />这八种映射模式分两类:前六种和后两种。第一类映射方式逻辑(ViewPort)坐标和物理(Window)坐标比例不能修改,而第二类可以。第一类出除了MM_TEXT模式

2010-07-26 23:42:00 1354

原创 Pen和Brush

获取画笔:hPen=GetStockObject(WHITE_PEN);hPen=CreatePen(iPenStyle, iWidth, crColor);hPen=CreatePenIndirct(&logpen);虚线画笔的中空隙颜色:SetBkColor(hdc,crColor);SetBkMode(hdc,iMode);画笔空隙背景有两种Mode,OPAQUE(默认)和TRANSPARENT。OPAQUE即设置SetBkColor的crColor,TRANSPARENT……绘图模式:SetROP2

2010-07-19 23:37:00 2810

原创 [汇编]内联汇编-扩展ASM

a        %eax、%ax或%alb        %ebx、%bx或%blc         %ecx、%cx或%cld        %edx、%dx或%dlS        %esi或%siD        %edi或%dir         任何可用的通用寄存器q        %eax、%ebx、%ecx、%edx之一A        对64位值使

2010-03-16 13:50:00 820

原创 中断处理调用过程

      对于中断,Linux分了以下几类:trap、system、call和intr(call还不明白)。trap类型15,特权级0(高);system类型15(怀疑是不是代码错了),特权级3(低);call类型12,特权级3;intr类型14,特权级0。      中断号为0~2、6~17的中断是trap,3~5和0x80是system,其余中断都是intr。      对所有中断,

2010-03-10 15:25:00 1636

原创 中断向量的设置

系统调用为0x80中断 (1)初始化8259(arch/i386/boot/setup.S) 设置8259 IRQ0~IRQ15中断向量为0x20~0x2F  8259初始化代码: mov al,#0x11  ! initialization sequence out #0x20,al  ! send it to 8259A-1 call delay out #0xA0,al 

2010-03-06 20:38:00 5211

原创 CA签证期限

     在安装simple-ca时,虽然签证的有效期默认是5年(1685天),但实际上最多只能是一年。要突破这个上限,只要在安装后修改一个配置文件就可以了。     首先,安装simple-ca($GLOBUS_LOCATION/setup/globus/setup-simple-ca)。注意,在这里设置的期限(假设为X)不要小了,不然会限制在能修改的最大期限值。然后修改/home/glob

2009-08-21 22:24:00 1098 4

原创 globus-stop-container授权问题

      哈哈,终于弄明白globus-stop-container的权限问题了!      今天测试了下globus-start-container和globus-stop-container的所用的证书,原来globus-start-container用的证书和私钥分别是containercert.pem和containerkey.pem(位于/etc/grid-security,是ho

2009-08-19 16:49:00 1169 5

原创 用globus-stop-container关闭容器

globus-stop-container默认关闭的是8443端口的安全连接端口(HTTPS),如果开启容器(globus-start-container)用了-nosec 或-p参数,globus-stop-container就不能正常关闭容器了。 用globus-stop-container关闭no security服务ERROR:  ; nested exception is:

2009-08-18 09:48:00 753

原创 Globus安装中一个不常见的错误

在配置SimpleCA时,出现错误: ERROR:Could not run build command: /usr/local/globus-4.0.4/sbin/gpt-build –force /home/globus/.globus/simpleCA//globus_simple_ca_ebb88ce5_setup-0.18.tar.gz先检查gpt-build的权限,如果

2009-08-18 08:54:00 1081 2

空空如也

空空如也

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

TA关注的人

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