糖炒栗子

cheap to talk,show muscle would be better...

导航

2011年11月30日 #

使用innerfuse脚本

摘要: 使用innerfuse脚本语言innerfuse脚本语言(或交互式财务计划系统)是建立从不同的2个部分:–编译器–运行编译器,可以发现在ifpscomp.pas单元,运行时在ifps3.pas单位,不依赖于对方。可以使用编译器和运行时直接使用组件,或它的包装,该tifps3compexec组件可以在ifps3compexec单位和包装的编译器和执行在一个易于使用的类。使用组件的版本ifps3必须把它放在窗体或数据模块。设置或指定脚本属性,调用编译方法和执行方法。任何错误警告或提示发生在编译可以发现在该compilermessages数组属性和运行时错误可以通过阅读execerrortostri 阅读全文

posted @ 2011-11-30 17:36 糖炒栗子 阅读(334) 评论(0) 推荐(0) 编辑

Windows内存结构

摘要: Windows内存结构:1、 进程的虚拟地址空间每个进程都有自己的私有内存地址空间,对于32位进程来说,这个地址空间是4GB,对于64位进程来说这个地址空间是16EB。当一个进程中的线程正在运行的时候,它只能访问该进程的内存空间,不能访问其他进程的内存。对于操作系统内存来说,他的内存也是隐藏的,在windows2000中的进程,其线程不可以访问操作系统的数据,而在windows98中,线程可以访问操作系统的数据。2、 虚拟地址的分区 每个进程都要将虚拟地址空间进行分区。其分区的依据是根据操作系统的基本实现来进行的。(1) NULL指针分配的分区保护该分区,当试图存取这个分区的地址时会发生错误。 阅读全文

posted @ 2011-11-30 17:06 糖炒栗子 阅读(1060) 评论(0) 推荐(0) 编辑

内存映射文件与内存读写实现进程间通信的比较

摘要: 内存映射文件与内存读写都可以实现进程间通信,其两者的差别如下:1、内存写需要手工申请内存以得到内存的起始地址和手工释放内存,而利用内存映射文件则不需要,映射完之后直接即可得到内存的起始地址,但是在用完之后要记得释放内核对象File、Map,Mapview等,否则会造成内存泄露。2、内存读写利用的是windows消息来传递起始地址指针,而内存映射文件利用内核对象的共享来实现进程间通信。3、内存读写方式利用的是找到对方进程后,对其内存进行读写。内存映射方式是创建一个内核对象来实现内存的共享。总之:两者都是以找到一块内存地址相同的区域,返回其基地址后对共享内存进行操作。 阅读全文

posted @ 2011-11-30 17:04 糖炒栗子 阅读(524) 评论(0) 推荐(0) 编辑

与窗体及消息有关的API

摘要: EnumChildWindows:函数功能:枚举一个父窗口的所有子窗口。函数原型:BOOL EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc, LPARAM lParam);各个参数如下: HWND hWndParent 父窗口句柄 WNDENUMPROC lpEnumFunc 回调函数的地址 LPARAM lParam 自定义的参数注意:回调函数的返回值将会影响到这个API函数的行为。如果回调函数返回true,则枚举继续直到枚举完成;如果返回false,则将会中止枚举。ClientToScreen:这个函数的功能:该函数将指... 阅读全文

posted @ 2011-11-30 16:57 糖炒栗子 阅读(539) 评论(0) 推荐(0) 编辑

Lo、Hi、HiByte、LoWord、HiWord、MakeWord、MakeLong、Int64Rec

摘要: 本话题会涉及到: Lo、Hi、HiByte、LoWord、HiWord、MakeWord、MakeLong、Int64Rec譬如有一个 Cardinal 类型的整数: 1144201745其十六进制的表示是: $44332211其二进制表示是: 01000100 00110011 00100010 00010001我们说 Cardinal 是 32 位的整数, 这里的位是指 "二进制的位数", 不信你数数.我们需要重点面对的是十六进制, 不管是几进制的数在编译成汇编代码时都是用十六进制表示, 因为它最直观;我们用十六进制来分析, 也是因为它的直观.怎么直观的? Cardin 阅读全文

posted @ 2011-11-30 14:08 糖炒栗子 阅读(679) 评论(0) 推荐(0) 编辑

进程间创建共享内存

摘要: 对共享内存的学习整理:创建共享内存分以下几个步骤: 1.定义共享内存的结构体; 2.利用CreateFileMapping函数创建共享内存; 3.定义指向共享内存结构体的指针pShareMem,利用MapViewOfFile函数将刚刚创建的内存映射到定义指针pShareMem。 读写共享内存分以下几个步骤: 1.定义共享内存的结构体; 2.用OpenFileMapping函数打开上面创建的共享内存区,该函数返回共享内存的地址; 3.将共享内存映射为文件指针; 4.定义指向共享内存结构体的指针,将共享内存的内容拷贝到结构体指针里。HANDLE hMap;HANDLE hAddress;int i 阅读全文

posted @ 2011-11-30 13:53 糖炒栗子 阅读(3985) 评论(0) 推荐(0) 编辑