关于作者

姓名:

性别:男

出生日期:1986-05-25

地区:广东-广州

联系电话:

QQ:214130598婚否:未婚
用户名:liupengfei20
笔名:liupengfei20
地区: 广东-广州
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



我的连接

访问统计:
文章个数:9
评论个数:21
留言条数:2




Powered by BlogDriver 2.1

人生得意须尽欢, 莫使金樽空对月

 

俱往矣 数风流人物 还看今朝''''''''''''''''''''

文章

手机查询

- 作者: liupengfei20 2005年12月1日, 星期四 12:42  回复(0) |  引用(1) 加入博采

网易新闻
CCTV:

- 作者: liupengfei20 2005年12月1日, 星期四 12:38  回复(0) |  引用(1) 加入博采

图片

 欢迎访问虚度年华jxzm2008

 欢迎访问虚度年华jxzm2008

 欢迎访问我的网站
 欢迎访问我的网站
 欢迎访问我的网站
 欢迎访问我的网站

- 作者: 虚度年华 访问统计: 155 2005年08月26日, 星期五 10:47 加入博采

160 160

- 作者: liupengfei20 2005年11月28日, 星期一 17:14  回复(6) |  引用(1) 加入博采

2003年最感人的图片

2003年最感人的图片                                      

1.冷暖相依
(作者:安鹤杰, 拍摄于内蒙古赤峰市新华街菜市场) 塞外的春天乍暖还寒。4月的一个早晨,天空飘洒着纷纷扬扬的雪花。一个中年男子的菜摊车上坐着一个小男孩,孩子用给菜保温的被子围着,父亲不时用手给儿子掖掖被子。作者说:“在阴暗的背景和漫天飞舞的雪花的衬托下,儿子稚嫩红润的小脸与父亲饱经沧桑的脸形成对比,父子俩面对生活的艰辛相依为命,特别是父亲使劲发出叫卖声时,脸部表情感人力度之大,使人看后心灵为之震颤。

冷暖相知

3.这就是那张在网上广泛流传,引起了无数争议的照片。我想,这张照片最大的现实意义不在于它揭示了社会巨大的贫富反差,更让人揪心的还在于--当这两个孩子长大之后,我们又该用什么来保证他们所代表的两个阶层的和睦相处?

 差距

男儿一跪仍英雄!!!!!!
  
  他------  
    是一位西藏运输兵,军功章代表着他为祖国立下的汗马功劳, 可他连自己的妻子难产死亡都没来的及看上一眼。
    
    下跪, 在妻儿的墓前下跪。

男儿一跪仍英雄!
 一跪也英雄

. 呐喊

 呐喊

血染的风采
  
  现在真不知道还有多少80年代出生的朋友知道这场战争,不知道有多少人看过高山下的花环,知道梁三喜,知道靳开来!又有谁知道这场仗一直打了十年呢?
  
  那是越南战争时期,经过3天的激战,终于拿下了这个山头。插旗时候,战士已经死亡

【作者: 泛换坏】【访问统计: 115】【2005年09月14日 星期三 20:14】【 加入博采】【打印

- 作者: liupengfei20 2005年11月28日, 星期一 17:12  回复(15) |  引用(1) 加入博采

短信笑话 逗你笑要帮忙顶一下呀!!!!!!

1、 士兵问连长:作战时踩到地雷咋办?连长大为恼火:靠,能咋办?踩坏了照价赔偿。

2、 很久墨收到你的信息 俺很心疼
俺想到死 曾用薯片割过脉 用豆腐撞过头 用降落伞跳过楼
用面条上过吊 可都墨死成
你就请俺吃顿饭 撑死俺算了

3、 如果感到心里挖凉挖凉的,请拨打俺的电话!谈感情请按1,谈工作请按2,谈人生请按3,给俺介绍对象请按5,请俺吃饭请直说,找俺借钱请挂机。

4、 长颈鹿嫁给了猴子,一年后长颈鹿提出离婚:我再也不要过这种上蹿下跳的日子了!猴子大怒:离就离!谁见过亲个嘴还得爬树的!

5、 鱼说:“我时时刻刻把眼睁开是为了在你身边不舍离开。”水说:“我终日流淌不知疲倦是为了围绕你好好把你抱起。”锅说:“都他妈快熟了还这么倔。”

6、 吃饭了吗?请接收短信。大象把大便排在路中央,一只蚂蚁正好路过,它抬头望了望那云雾缭绕的顶峰,不禁唱到:呀啦索,这就是青藏高原!~~~~

7、 你都长大了,有些事应该让你知道了:天,是用来刮风下雨的;地,是用来长花长草的;我,是用来证明人类是多伟大的;你是用来炖粉条的。

8、 在铁路旁大号却没带纸时,别着急,火车会提醒你:裤擦,裤擦,裤裤擦!在河边上大号却没带纸时,别着急,青蛙会告诉你:棍刮,棍刮,棍棍刮!

9、 钱可以买房子但买不到家,能买到婚姻但买不到爱,可以买到钟表但买不到时间,钱不是一切,反而是痛苦的根源,把你的钱给我,让我一个人承担痛苦吧!

10、 老天,太蓝!大海,太咸!人生,太难!工作,太烦!和你,有缘!想你,失眠!见你,太远!唉,这可让我怎么办?想你想得我吃不下筷子,咽不下碗!

11、 送你12生肖,祝你聪明如鼠,强壮如牛,胆大如虎,可爱如兔,自信如龙,魅力如蛇,浪漫如马,温顺如羊,顽皮如猴,美丽如鸡,忠诚如狗,长得像猪!

12、 学问之美,在于使人一头雾水;诗歌之美,在于煽动男女出轨;女人之美,在于蠢得无怨无悔;男人之美,在于说谎说得白日见鬼。

13、 在乎你的我只在乎我在乎的是是否在乎在乎你的我,我在乎的你是否和在乎你的我在乎我在乎的你一样在乎在乎你的我,小样儿,看晕你!

14、 听说过吗?前世的五百次回眸,才换得今生的一次擦肩,象你我这样亲密的朋友,上辈子似乎没干什么,光他妈回头了!

15、 有两个造假钞的不小心造出面值15元的假钞,两人决定拿到偏远山区花掉,当他们拿一张15元买了1元的糖葫芦好,他们哭了,农民找了他们两张7块的。

16、 你的人生写照:十岁学会自己洗澡——猪自清;二十岁光彩照人——猪时茂;三十岁找到工作——猪立业;四十岁雇了佣人——猪得佣;五十岁学会打篮球——猪投!

- 作者: liupengfei20 2005年11月28日, 星期一 14:33  回复(0) |  引用(1) 加入博采

内存管理和文件输入/输出
内存管理和文件输入/输出

从用户的角度来看,WIN32的内存管理是非常简单和明了的。每一个应用程序都有自己独立的4G地址空间,这种内存模式叫做“平坦”型地址模式,所有的段寄存器或描述符都指向同样的起始地址,所有的地址偏移都是32位的长度,这样一个应用程序无须变换选择符就可以存取自己的多达4G的地址空间。这种内存管理模式是非常简洁而便于管理的,而且我们再不用和那些令人讨厌的“near”和“far”指针打交道了。
在W16下有两种主要类型的API:全局和局部。“全局”的API 分配在其他的段中,这样从内存角度来看他们是一些“far”(远)函数或者叫远过程调用,“局部”API只要和进程的堆打交道,所以把它们叫做“near”(近)函数或者近过程调用。而在WIN32中,这两种内存模式是相同的,无论您调用GlobalAlloc还是LocalAlloc,结果都是一样。
至于分配和使用内存的过程都是一样的:

调用GlobalAlloc函数分配一块内存,该函数会返回分配的内存句柄。
调用GlobalLock函数锁定内存块,该函数接受一个内存句柄作为参数,然后返回一个指向被锁定的内存块的指针。
您可以用该指针来读写内存。
调用GlobalUnlock函数来解锁先前被锁定的内存,该函数使得指向内存块的指针无效。
调用GlobalFree函数来释放内存块。您必须传给该函数一个内存句柄。
在WIN32中您也可以用“Local”替代内存分配API函数带有“Global”字样的函数中的“Global”,也即用LocalAlloc、LocalLock等。
在调用函数GlobalAlloc时使用GMEM_FIXED标志位可以更进一步简化操作。使用了该标志后,Global/LocalAlloc返回的是指向已分配内存的指针而不是句柄,这样也就不用调用Global/LocalLock来锁定内存了,释放内存时只要直接调用Global/LocalFree就可以了。不过在本课中我们只使用传统的方法,因为其它地方有许多的源代码是用这种方法写的。

WIN32的文件输入/输出API和DOS下的从外表上看几乎一样(译者注:也许不管内部实现多么不同,可以想象所有的文件系统暴露给应用程序编写者的接口的功能应该基本相同),不同的只是把DOS下的中断方式处理文件输入/输出变成了对API函数的调用。以下是基本的步骤:

调用CreateFile函数生成一个文件,该函数可以应用在多方面,除了磁盘文件外,我们还可以用来打开通讯端口、管道、驱动程序或控制台。如果成功的话,会返回指向文件或设备的句柄。然后可以使用该句柄去完成对文件或设备操作。
调用SetFilePointer来把文件指针移到想读写的地方。.
然后调用ReadFile 或 WriteFile来完成实际的读写。这些函数会自己处理文件和内存之间的数据传送,这样免得您自己去做分配内存等繁杂的琐事。
调用CloseHandle来关闭文件。该函数接受一个先前打开的文件句柄。
内容:

下面的代码段演示了:打开一个“打开文件”对话框,用户可以选择打开一个文本文件,然后在一个编辑控件中打开该文本文件的内容,另外用户还可以编辑该文本文件的内容并选择保存。

.386
.model flat,stdcall
option casemap:none
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\comdlg32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\comdlg32.lib

.const
IDM_OPEN equ 1
IDM_SAVE equ 2
IDM_EXIT equ 3
MAXSIZE equ 260
MEMSIZE equ 65535

EditID equ 1 ; ID of the edit control

.data
ClassName db "Win32ASMEditClass",0
AppName db "Win32 ASM Edit",0
EditClass db "edit",0
MenuName db "FirstMenu",0
ofn OPENFILENAME <>
FilterString db "All Files",0,"*.*",0
db "Text Files",0,"*.txt",0,0
buffer db MAXSIZE dup(0)

.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?
hwndEdit HWND ? ; Handle to the edit control
hFile HANDLE ? ; File handle
hMemory HANDLE ? ;handle to the allocated memory block
pMemory DWORD ? ;pointer to the allocated memory block
SizeReadWrite DWORD ? ; number of bytes actually read or write

.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke GetCommandLine
mov CommandLine,eax
invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
invoke ExitProcess,eax

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:SDWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hwnd:HWND
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,NULL
push hInst
pop wc.hInstance
mov wc.hbrBackground,COLOR_WINDOW+1
mov wc.lpszMenuName,OFFSET MenuName
mov wc.lpszClassName,OFFSET ClassName
invoke LoadIcon,NULL,IDI_APPLICATION
mov wc.hIcon,eax
mov wc.hIconSm,eax
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor,eax
invoke RegisterClassEx, addr wc
invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR ClassName,ADDR AppName,\
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
CW_USEDEFAULT,300,200,NULL,NULL,\
hInst,NULL
mov hwnd,eax
invoke ShowWindow, hwnd,SW_SHOWNORMAL
invoke UpdateWindow, hwnd
.WHILE TRUE
invoke GetMessage, ADDR msg,NULL,0,0
.BREAK .IF (!eax)
invoke TranslateMessage, ADDR msg
invoke DispatchMessage, ADDR msg
.ENDW
mov eax,msg.wParam
ret
WinMain endp

WndProc proc uses ebx hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg==WM_CREATE
invoke CreateWindowEx,NULL,ADDR EditClass,NULL,\
WS_VISIBLE or WS_CHILD or ES_LEFT or ES_MULTILINE or\
ES_AUTOHSCROLL or ES_AUTOVSCROLL,0,\
0,0,0,hWnd,EditID,\
hInstance,NULL
mov hwndEdit,eax
invoke SetFocus,hwndEdit
;==============================================
; Initialize the members of OPENFILENAME structure
;==============================================
mov ofn.lStructSize,SIZEOF ofn
push hWnd
pop ofn.hWndOwner
push hInstance
pop ofn.hInstance
mov ofn.lpstrFilter, OFFSET FilterString
mov ofn.lpstrFile, OFFSET buffer
mov ofn.nMaxFile,MAXSIZE
.ELSEIF uMsg==WM_SIZE
mov eax,lParam
mov edx,eax
shr edx,16
and eax,0ffffh
invoke MoveWindow,hwndEdit,0,0,eax,edx,TRUE
.ELSEIF uMsg==WM_DESTROY
invoke PostQuitMessage,NULL
.ELSEIF uMsg==WM_COMMAND
mov eax,wParam
.if lParam==0
.if ax==IDM_OPEN
mov ofn.Flags, OFN_FILEMUSTEXIST or \
OFN_PATHMUSTEXIST or OFN_LONGNAMES or\
OFN_EXPLORER or OFN_HIDEREADONLY
invoke GetOpenFileName, ADDR ofn
.if eax==TRUE
invoke CreateFile,ADDR buffer,\
GENERIC_READ or GENERIC_WRITE ,\
FILE_SHARE_READ or FILE_SHARE_WRITE,\
NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\
NULL
mov hFile,eax
invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE
mov hMemory,eax
invoke GlobalLock,hMemory
mov pMemory,eax
invoke ReadFile,hFile,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL
invoke SendMessage,hwndEdit,WM_SETTEXT,NULL,pMemory
invoke CloseHandle,hFile
invoke GlobalUnlock,pMemory
invoke GlobalFree,hMemory
.endif
invoke SetFocus,hwndEdit
.elseif ax==IDM_SAVE
mov ofn.Flags,OFN_LONGNAMES or\
OFN_EXPLORER or OFN_HIDEREADONLY
invoke GetSaveFileName, ADDR ofn
.if eax==TRUE
invoke CreateFile,ADDR buffer,\
GENERIC_READ or GENERIC_WRITE ,\
FILE_SHARE_READ or FILE_SHARE_WRITE,\
NULL,CREATE_NEW,FILE_ATTRIBUTE_ARCHIVE,\
NULL
mov hFile,eax
invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE
mov hMemory,eax
invoke GlobalLock,hMemory
mov pMemory,eax
invoke SendMessage,hwndEdit,WM_GETTEXT,MEMSIZE-1,pMemory
invoke WriteFile,hFile,pMemory,eax,ADDR SizeReadWrite,NULL
invoke CloseHandle,hFile
invoke GlobalUnlock,pMemory
invoke GlobalFree,hMemory
.endif
invoke SetFocus,hwndEdit
.else
invoke DestroyWindow, hWnd
.endif
.endif
.ELSE
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.ENDIF
xor eax,eax
ret
WndProc endp
end start

--------------------------------------------------------------------------------

分析:
invoke CreateWindowEx,NULL,ADDR EditClass,NULL,\
WS_VISIBLE or WS_CHILD or ES_LEFT or ES_MULTILINE or\
ES_AUTOHSCROLL or ES_AUTOVSCROLL,0,\
0,0,0,hWnd,EditID,\
hInstance,NULL
mov hwndEdit,eax
处理 WM_CREATE消息时,我们创建一个编辑控件。请注意,我们把该控件大小的有关参数都设成0,因为我们稍后将重新设置该编辑控件的大小,使得其覆盖父窗口的整个客户区。
注意:本例中我们没有必要调用ShowWindow来显示编辑控件,因为在创建时在其风格中已设置了WS_VISIBLE标志位,在创建父窗口时也可以使用这个小技巧。

;==============================================
; Initialize the members of OPENFILENAME structure
;==============================================
mov ofn.lStructSize,SIZEOF ofn
push hWnd
pop ofn.hWndOwner
push hInstance
pop ofn.hInstance
mov ofn.lpstrFilter, OFFSET FilterString
mov ofn.lpstrFile, OFFSET buffer
mov ofn.nMaxFile,MAXSIZE

创建完编辑控件后,我们初始话ofn变量的成员。因为稍后在保存文件时还要使用该结构体变量,所以此处只初始化要用到的公共部分。WM_CREATE 消息的处理部分是进行这种初始化的绝佳之处。

.ELSEIF uMsg==WM_SIZE
mov eax,lParam
mov edx,eax
shr edx,16
and eax,0ffffh
invoke MoveWindow,hwndEdit,0,0,eax,edx,TRUE

当主窗口的客户区部分大小改变时,我们的应用程序将接收到WM_SIZE 消息。当然该窗口第一次显示时,我们也将接收到该消息。要接收到该消息,主窗口必须有CS_VREDRAW和CS_HREDRAW风格。我们应该把缩放编辑控件的动作放到此处。我们要把编辑控件变成和我们的窗口客户区一样大,所以先得要得到父窗口客户区的大小。这些值包含在参数lParam中,lParam的高字部分是客户区的高,底字部分是客户区的宽。然后我们调用MoveWindow函数来重新调整编辑控件的大小,该函数不仅能够移动窗口的位置,而且能够改变窗口的大小。

.if ax==IDM_OPEN
mov ofn.Flags, OFN_FILEMUSTEXIST or \
OFN_PATHMUSTEXIST or OFN_LONGNAMES or\
OFN_EXPLORER or OFN_HIDEREADONLY
invoke GetOpenFileName, ADDR ofn

当用户选择了File/Open菜单项时,我们填充ofn的其他成员,然后调用GetOpenFileName函数显示一个“打开文件”对话框。

.if eax==TRUE
invoke CreateFile,ADDR buffer,\
GENERIC_READ or GENERIC_WRITE ,\
FILE_SHARE_READ or FILE_SHARE_WRITE,\
NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\
NULL
mov hFile,eax

如果用户选择了一个文件时,我们调用CreateFile函数来打开。我们设置标志位来让该函数的文件能够读写。文件打开后我们把返回的文件句柄保存在一个全局变量中以便以后使用。CreateFile函数应用非常广泛,其原型如下:

CreateFile proto lpFileName:DWORD,\
dwDesiredAccess:DWORD,\
dwShareMode:DWORD,\
lpSecurityAttributes:DWORD,\
dwCreationDistribution:DWORD\,
dwFlagsAndAttributes:DWORD\,
hTemplateFile:DWORD

dwDesiredAccess 指定想要进行的操作。

0 打开文件查询它的属性。
GENERIC_READ 打开文件读
GENERIC_WRITE 打开文件写.
dwShareMode 指定文件的共享模式。
0 不让其他进程共享,即当您打开该文件后,其他进程欲打开该文件时将失败。
FILE_SHARE_READ 允许其他进程读。
FILE_SHARE_WRITE 允许其他进程写。
lpSecurityAttributes 该属性在WIN95下无效。
dwCreationDistribution 指定欲生成的文件在其已存在和未存在时应做的动作。

CREATE_NEW 生成一个新文件。如果文件已存在则失败。
CREATE_ALWAYS 无论文件是否存在都生成一个新文件。
OPEN_EXISTING 打开存在的文件。如果文件不存在则失败。
OPEN_ALWAYS 打开文件,如果该文件不存在则生成,这和在dwCreationDistribution 中设置 CREATE_NEW标志位一样。
TRUNCATE_EXISTING打开文件。打开时该文件的长度裁减到零(也即完全不要原来的文件了)。这要求调用进程必须有GENERIC_WRITE的权利,如果指定的文件不存在,该函数返回失败。
dwFlagsAndAttributes 指定文件的属性。

FILE_ATTRIBUTE_ARCHIVE 该文件具有一般的归档文件的属性。用户可以用该标志位来标记文件的删除和备份。
FILE_ATTRIBUTE_COMPRESSED 文件或目录是压缩的。对于文件来说是压缩其中的所有数据,而对于目录来说新生成的子目录和文件都要压缩。
FILE_ATTRIBUTE_NORMAL 该文件没有一般的属性集。该标志位只能单独使用。
FILE_ATTRIBUTE_HIDDEN 该文件是隐藏文件,当浏览一般的文件目录时将不显示它。
FILE_ATTRIBUTE_READONLY 该文件是只读文件。应用程序可以读其中的内容,但不可以写。
FILE_ATTRIBUTE_SYSTEM 该文件是系统文件。
invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE
mov hMemory,eax
invoke GlobalLock,hMemory
mov pMemory,eax
文件打开后,我们将分配一块内存供随后的API 函数ReadFile 和 WriteFile使用。我们使用标志GMEM_MOVEABLE来使得WINDOWS总是把内存块移到可靠的内存中去,GMEM_ZEROINIT告诉WINDOWS把刚刚分配的内存置为零。如果GlobalAlloc调用成功的话,会在eax中返回内存块的句柄,我们把该句柄传给GlobalLock函数以得到指向内存块的指针。

invoke ReadFile,hFile,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL
invoke SendMessage,hwndEdit,WM_SETTEXT,NULL,pMemory

使内存块可用后,我们调用ReadFile函数从文件中读数据。对于第一次打开的文件,文件的指针放在偏移0处,像本例中我们从偏移0处往前读。ReadFile的第一个参数是文件句柄,第二个参数是指向内存块的指针,接下来的参数是要读的数据的长度,第四个参数是一个指向DWORD型的参数的指针,它用来存放实际读的数据的长度。读完了后,我们把这些内容存放到编辑控件中,这要用消息传递来完成,我们把消息WM_SETTEXT传给编辑控件,其中的参数lParam中包含指向内存块的指针。到此处,编辑控件就可以在它的客户区显示文件的内容了。

invoke CloseHandle,hFile
invoke GlobalUnlock,pMemory
invoke GlobalFree,hMemory
.endif

我们不再需要让文件打开了,因为我们的目的是把修改后的数据保存到另一个文件而不是先前的那一个文件中去。所以我们可以调用CloseHandle来关闭文件。接下来我们解锁内存块,再释放它。实际上我们可以暂不释放内存块,而在以后的操作中重新利用。我们为了演示的原由,选择了释放它。

invoke SetFocus,hwndEdit

当打开文件对话框显示在屏幕上时,输入的焦点切换到了该对话框上。所以在该对话框关闭后,我们必须把焦点切换到编辑控件上。 现在打开文件的阶段结束了,用户可以编辑他们打开的文件了。当用户想把修改后的内容保存到磁盘上时,必须选择File/Save菜单项,这时会显示一个保存文件对话框。显示保存文件对话框其实和打开打开文件对话框基本一样。您甚至可以认为他们的不同只是函数名称不一样而已。此处可以复用大多数ofn变量先前设置的成员的值。

mov ofn.Flags,OFN_LONGNAMES or\
OFN_EXPLORER or OFN_HIDEREADONLY

本例中我们将生成一个新文件,所以一定不能有 OFN_FILEMUSTEXIST 和 OFN_PATHMUSTEXIST标志位。dwCreationDistribution 参数应当有CREATE_NEW标志位。 接下来的代码和打开问对话框基本一样。最后调用:

invoke SendMessage,hwndEdit,WM_GETTEXT,MEMSIZE-1,pMemory
invoke WriteFile,hFile,pMemory,eax,ADDR SizeReadWrite,NULL

现在我们把修改后的数据从编辑控件中写回内存块,再从内存块写回

- 作者: liupengfei20 2005年11月28日, 星期一 14:01  回复(0) |  引用(1) 加入博采

股票的概念与特征


股票的概念与特征

随着经济体制改革的深化,我国股票市场也不断地发展与完善,参与股市投资的投资者日益增多,股市投资已成为一种人们愿意承担其风险的理财手段,而股票自然而然也成为了人人关心的热门话题。

股票到底是什么?股票是股份证书的简称,是股份公司为筹集资金而发行给股东作为持股凭证并借以取得股息和红利的一种有价证券。每股股票都代表股东对企业拥有一个基本单位的所有权。股票是股份公司资本的构成部分,可以转让、买卖或作价抵押,是资金市场的主要长期信用工具。

股票的作用有三点。

(1)股票是一种出资证明,当一个自然人或法人向股份有限公司参股投资时,便可获得股票作为出资的凭证;

(2)股票的持有者凭借股票来证明自己的股东身份,参加股份公司的股东大会,对股份公司的经营发表意见;

(3)股票持有者凭借股票参加股份发行企业的利润分配,也就是通常所说的分红,以此获得一定的经济利益。

股票作为一种有价证券,具有如下特征:

1.稳定性 股票投资是一种没有期限的长期投资。股票一经买入,只要股票发行公司存在,任何股票持有者都不能退股,即不能向股票发行公司要求抽回本金。同样,股票持有者的股东身份和股东权益就不能改变,但他可以通过股票交易市场将股票卖出,使股份转让给其他投资者,以收回自己原来的投资。

2.风险性 任何一种投资都是有风险的,股票投资也不例外。股票投资者能否获得预期的回报,首先取决于企业的盈利情况,利大多分,利小少分,公司破产时则可能血本无归;其次,股票作为交易对象,就如同商品一样,有着自己的价格。而股票的价格除了受制于企业的经营状况之外,还受经济的、政治的、社会的甚至人为的等诸多因素的影响,处于不断变化的状态中,大起大落的现象也时有发生。股票市场上股票价格的波动虽然不会影响上市公司的经营业绩,从而影响股息与红利,但股票的贬值还是会使投资者蒙受部分损失。因此,欲入市投资者,一定要谨慎从事。

3.责权性 股票持有者具有参与股份公司盈利分配和承担有限责任的权利和义务。根据公司法的规定,股票的持有者就是股份有限公司的股东,他有权或通过其代理人出席股东大会、选举董事会并参与公司的经营决策。股东权力的大小,取决于占有股票的多少。 持有股票的股东一般有参加公司股东大会的权利,具有投票权,在某种意义上亦可看作是参与经营权;股东亦有参与公司的盈利分配的权力,可称之为利益分配权。股东可凭其持有的股份向股份公司领取股息和索偿权和责任权。在公司解散或破产时,股东需向公司承担有限责任,股东要按其所持有的股份比例对债权人承担清偿债务的有限责任。在债权人的债务清偿后,优先股和普通股的股东对剩余资产亦可按其所持有股份的比例向公司请求清偿(即索偿),但优先股股东要优先于普通股,普通股只有在优先股索偿后如仍有剩余资产时,才具有追索清偿的权利。

4.流通性 股票可以在股票市场上随时转让,进行买卖,也可以继承、赠与、抵押,但不能退股。所以,股票亦是一种具有颇强流通性的流动资产。无记名股票的转让只要把股票交付会给受让人,即可达到转让的法律效果;记名股票转让则要在卖出人签章背书后才可转让。正是由于股票具有颇强的流通性,才使股票成为一种重要的融资工具而不断发展。 股票凭证是股票的具体表现形式。股票不但要取得国家有关部门的批准才能发行上市,而且其票面必须具备一些基本的内容。股票凭证在制作程序、记载的内容和记载方式上都必须规范化并符合有关的法律法规和公司章程的规定。

一般情况下,上市公司的股票凭证票面上应具备以下内容:

1.发行该股票的股份有限公司的全称及其注册登记的日期与地址。

2.发行的股票总额、股数及每股金额。

3.股票的票面金额及其所代表的股份数。

4.股票发行公司的董事长或董事签章,主管机关核定的发行登记机构的签章,有的还注明是普通股还是优先股等字样。

5.股票发行的日期及股票的流水编号。如果是记名股票,则要写明股东的姓名。

6.印有供转让股票时所用的表格。

7.股票发行公司认为应当载明的注意事项。如注明股票过户时必须办理的手续、股票的登记处及地址,是优先股的说明优先权的内容等。 由于电子技术的发展与应用,我国深沪股市股票的发行和交易都借助于电子计算机及电子通讯系统进行,上市股票的日常交易已实现了无纸化,所以现在的股票仅仅是由电子计算机系统管理的一组组二进制数字而已。但从法律上来说,上市交易的股票都必须具备上述内容。我国发行的每股股票的面额均为一元人民币,股票的发行总额为上市的股份有限公司的总股本数。

 

- 作者: liupengfei20 2005年11月28日, 星期一 13:40  回复(0) |  引用(1) 加入博采

教你如何能够轻轻松松的穿透:网络防火墙
教你如何能够轻轻松松的穿透:网络防火墙

如今采用局域网方式接入Internet已经是各个公司、高校和政府机关的主要上网方式,这种方式既节省IP地址,又方便管理和控制。通常网管会在局域网的出口处设置各种防火墙,这样一方面保证了局域网内部的安全xx,另一方面又可以控制局域网内部人员的访问权限。可这样也限制了使用者的使用权限,与外界的联系也很不方便。比方说对于在公司里上班的上班一族和局域网里的穷学生来说,最痛恨的事情莫过于可恨的Boss为了防止大家偷懒而关闭了大多数端口,只允许使用有限的服务,如WWW、POP3、SMTP等。这样

  就用不成很多工具,如QQ、Cterm、FTP等,你和外界的联系会很不方便,有MM而不能聊、有BBS而不能灌、有精彩的歌曲而不能Down,人世间最大的痛苦莫过于此……怎么办?别急别急,本文教你几招,轻轻松松穿透防火墙,尽情使用各种工具!好,下面我们一起来看这几招的原理解说和实战说明。

  名词解释:

  协议

  协议(Protocol)就是一组在网络上发送信息的规则和约定。这些规则控制在网络设备间交换消息的内容、格式、定时、顺序和错误,通俗说就是不同网络程序的交流语言。我们常见的QQ使用UDP协议、ICQ使用TCP协议、E-mail程序使用POP3和SMTP协议,而在常见的协议中SOCKS是一种比较复杂的协议。

  端口

  端口(Port)可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等;软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。端口号实际上有点和文件描述符相似,也是系统的一种资源,只不过其分配方式有固定的模式。有几种基本分配方式:第一种是全局分配,这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,而且按照协议不同分配不同的端口号,这样导致很多服务被固定在某个协议的端口上,如TCP的21端口就被FTP服务占用;第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地xx作系统提出申请,xx作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来。

  端口按端口号可分为三大类:

  1.公认端口(WellsKnownsPorts):从0到1023,它们紧密绑定(Binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议,例如80端口实际上就是HTTP通讯。

  2.注册端口(RegisteredaPorts):从1024到49151,它们松散绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的,例如许多系统处理动态端口从1024左右开始。

  3.动态和“/”或私有端口(Dynamic3and/or3Private3Ports):从49152到65535。理论上不应为服务分配这些端口,实际上机器通常从1024起分配动态端口,但也有例外:SUN的RPC端口从32768开始。

  代理服务器

  代理服务器(Proxy)是网络信息的中转站,比方说HTTP代理服务器。我们使用网络浏览器直接链接其他Internet站点并取得网络信息时,需送出Request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分代理服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS代理服务器,其原理大同小异。

  防火墙

  防火墙(Firewall)是一个系统(或一组系统),它能增强机构内部网络的安全xx。防火墙系统决定了哪些内部服务可以被外界访问、外界的哪些人可以访问内部的特定服务,以及哪些外部资源可以被内部人员访问。要使一个防火墙有效,所有进入和外出的信息都必须经过防火墙,接受其检查。防火墙必须做到只允许经过授权的数据通过,并且防火墙本身也必须能够免于渗透。但不幸的是,防火墙系统一旦被攻击者突破或迂回,就不能提供任何保护了。

  防火墙的实现方式包括“包过滤路由器”和“应用层网关”。包过滤路由器可以过滤协议(ICMP、UDP、TCP等),只允许特定的协议通过;应用层网关就是我们常说的代理服务器,它可以提供比路由器更严格的安全策略,我们平时的各种限制就是在应用层实现的。

- 作者: liupengfei20 2005年11月28日, 星期一 13:27  回复(0) |  引用(1) 加入博采