VC点滴
风去沙来
这个作者很懒,什么都没留下…
展开
-
终止进程的运行的方法
若要终止进程的运行,可以使用下面四种方法: ? 主线程的进入点函数返回(最好使用这个方法)。 ? 进程中的一个线程调用E x i t P r o c e s s函数(应该避免使用这种方法)。 ? 另一个进程中的线程调用Te r m i n a t e P r o c e s s函数(应该避免使用这种方法)。 ? 进程中的所有线程自行终止运行(这种情况几乎从未发生)。原创 2009-08-07 15:31:00 · 2317 阅读 · 0 评论 -
开源ext2read代码走读之-扩展分区与逻辑分区说明及如何读取扩展分区的分区表(EBR)
一个硬盘可以有很多分区,但MBR分区表只有四项,怎么能突破这个限制呢?答案是扩展引导记录(EBR - Extended Boot Record),通过把MBR分区表中一项设为扩展分区(系统ID为0x05或0x0F),其分区表项指定扩展分区的起始位置和长度,在其中最开始扇区 (EBR)和MBR相同位置(0x1BE)放置另外一个分区表,一般称为扩展分区表。扩展分区表的第一项指定扩展分区目前的逻辑分区信原创 2014-08-27 19:01:50 · 2080 阅读 · 0 评论 -
开源ext2read代码走读之-MBR中的一个分区表的构成与分区类型值
根据前面的MBR中包含的4个分区表中的一个分区表的信息,对应的结构体为:struct MBRpartition { unsigned char boot_ind; /* 0x80 - active */ unsigned char head; /* starting head */ unsigned char sector;原创 2014-08-27 15:05:26 · 1552 阅读 · 0 评论 -
开源ext2read代码走读之-如何读取MBR分区的内容
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。在深入讨论主引导扇区内部结构的时候,有时也将其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。因此,在使用“主引导记录”(M原创 2014-08-27 13:58:06 · 2094 阅读 · 0 评论 -
开源ext2read代码走读之-在windows下如何判断有几个硬盘设备?
int get_ndisks(){ HANDLE hDevice; // handle to the drive to be examined int ndisks = 0; char path[20] = {"\\\\.\\PhysicalDrive0"}; do { //TRACE("NDISKS %原创 2014-08-26 19:54:55 · 1658 阅读 · 0 评论 -
开源ext2read代码走读之--“\\\\.\\PhysicalDrive0”意义?
在ext2read中读取ext4文件系统的代码中,读取硬盘中的信息时,定义了以下的宏,那么这个宏是什么意思呢?#define DEVICE "\\\\.\\PhysicalDrive0"是什么意思?由于"\"是C/C+中转义符, "\\\\.\\"就相当于\\.\,那么以上的宏定义中的“\\\.\\PhysicalDrive0”就等价于“\\.\PhysicalDrive0”原创 2014-08-25 19:53:32 · 3998 阅读 · 2 评论 -
"LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏"的问题的解决
连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题。在电脑里面搜索一下cvtres.exe,发现存在多个文件,使用最新的cvtres.exe替换老的文件即可,替换之前记得备份一下,如果不对,可以替换回来。例如:我的电脑里面安装了vs2010,最近更新了系统,打了一些补丁,结果就出现这种错误了。在转载 2014-08-12 14:45:45 · 770 阅读 · 0 评论 -
VC 空间不足时覆盖最早的文件或文件夹
ULARGE_INTEGER lpuse; ULARGE_INTEGER lptotal; ULARGE_INTEGER lpfree; //得到DiskName中指定的盘符的总空间、已用空间、剩余空间 GetDiskFreeSpaceEx(DiskName,&lpuse,&lptotal,&lpfree); CString str; str.For原创 2009-06-17 12:03:00 · 1873 阅读 · 1 评论 -
VC 得到磁盘的空间(总的、已用的、剩余的)
CString CurDiskNo; //当前录像的盘符号 CString TotalDiskSize; //当前录像盘的总大小 CString FreeDiskSize; //当前录像盘和剩余空间 char cName[4 * m_iMaxCount] = {0}; char sDiskPath[4 * m_iMaxC原创 2009-06-17 11:17:00 · 7681 阅读 · 0 评论 -
error C2146:和error C4430:的错误
如果存在两个类的头文件a.h和b.h,在a.h中有这样的语句:#include "b.h",在b.h文件中有这样的语句:#include "a.h" 且在一个类中有另一个类的对象时 那么就会出现这样的错误: error C2146: syntax error : missing ; before identifier 使用的对象名error C4430: missing t原创 2009-06-17 11:52:00 · 8989 阅读 · 4 评论 -
VC 画图时字体的设置
CPaintDC dc(this); CFont Font; CFont* pOldFont = NULL; LOGFONT font; font.lfHeight=16; font.lfWidth=0; font.lfEscapement=0; font.lfOrientation=0; font.lfWeight=FW_原创 2009-06-17 11:08:00 · 2285 阅读 · 0 评论 -
进程终止运行时出现的情况
当进程终止运行时,下列操作将启动运行: 1) 进程中剩余的所有线程全部终止运行。 2) 进程指定的所有用户对象和G D I对象均被释放,所有内核对象均被关闭(如果没有其他 进程打开它们的句柄,那么这些内核对象将被撤消。但是,如果其他进程打开了它们的句柄, 内核对象将不会撤消)。 3) 进程的退出代码将从S T I L L _ A C T I V E改为传递给E x i t P r原创 2009-08-07 15:34:00 · 1522 阅读 · 0 评论 -
得到系统版本号
Windows API 拥有下面的G e t Ve r s i o n 函数: DWORD GetVersion();该函数已经有相当长的历史了。最初它是为1 6 位Wi n d o w s 设计的。它的作用很简单,在高位字中返回M S - D O S 版本号,在低位字中返回Wi n d o w s 版本号。对于每个字来说,高位字节代表主要版本号,低位字节代表次要版本号。但是,编写该代码的程序原创 2009-08-07 15:28:00 · 806 阅读 · 0 评论 -
程序能够使用的C / C + +运行期全局变量
变量名 类型 说明 _osver unsigned int 操作系统的测试版本。例如Windows 2000 Beta 3是测试版本2031 。因此_osver的值是2031 _winmajor unsi原创 2009-08-07 15:19:00 · 853 阅读 · 0 评论 -
枚举系统进程方法
P r o c e s s 3 2 F i r s t和P r o c e s s 3 2 N e x t函数。 更加有趣的是,M i c r o s o f t的Windows NT开发小组因为不喜欢To o l H e l p函数,所以没有将这些函数添加给Windows NT。相反,他们开发了自己的Process Status函数,用于枚举进程(这些函数包含在P S A P I . d l l原创 2009-08-07 15:35:00 · 739 阅读 · 0 评论 -
得到当前路径的几种方法
通过调用下面两个函数,线程能够获得和设置它的进程的当前驱动器和目录: DWORD GetCurrentDirectory( DWORD cchCurDir, PTSTR pszCurDir);BOOL SetCurrentDirectory(PCTSTR pszCurDir);注意可以使用C 运行期函数_ c h d i r ,而不是使用Wi n d o w s 的S e t C原创 2009-08-07 15:26:00 · 931 阅读 · 0 评论 -
环境变量的添加、删除、修改方法
使用S e t E n v i r o n m e n t Va r i a b l e 函数来添加变量、删除变量或者修改变量的值: BOOL SetEnvironmentVariable( PCTSTR pszName, PCTSTR pszValue);该函数用于将p s z N a m e 参数标识的变量设置为p s z Va l u e 参数标识的值。如果带有指定名字的变量已经原创 2009-08-07 15:23:00 · 2030 阅读 · 0 评论 -
开源ext2read代码走读之-ext2文件系统中的超级块及对应代码
在进行分区时,每个分区就是一个文件系统,而每个文件系统开始位置的那个块就称为超级块。超级块的作用是存储文件系统的大小、空的和填满的块,以及它们各自的总数和其他诸如此类的信息。这也就是说,要使用这一个分区来进行数据访问时,第一个要经过的就是超级块,所以超级块坏了,这个磁盘也就回天乏术了。super block的中文名称是超级块,它是硬盘分区开头——开头的第一个byte是byte 0,从 by原创 2014-09-03 19:46:39 · 2968 阅读 · 0 评论