【www.guakaob.com--数据库系统】
系统是动态分区导致无法删除合并
博客分类:
安装win7系统diskpartwin7disk
今天给一个朋友维修电脑的时候发现,硬盘所有分区都变成了动态分区,而不是我们常见的主分区和逻辑分区。无从下手,考虑重新安装Win7。
重装的时候,居然发现分区居然无法调整,不能删除,不能合并,郁闷啊。插入XP系统盘去玩光盘直接蓝屏了。于是在网上搜索资料,终于找到了解决方案。特分享给大家。利用Diskpart命令
为Windows7安装分区的方法进行解析,解决Windows 7下的分区麻烦。 我的具体做法是:
1.在安装Win7的时候,当安装程序运行到创建磁盘分区界面时,按下“Shift+F10”启动DOS命令窗口
2.键入Diskpart命令,进入“Diskpart”的命令环境
3.键入List Disk命令,显示本机的所有磁盘
4.键入Select Disk 0命令,选择0号磁盘(硬盘)(可以用List Partition 去查看分区情况)
5.键入Clean命令,清除0号磁盘(硬盘)上的所有分区或者用Convert BASIC命令去把所有动态分区转换成基本分区
关闭当前窗口,进入创建磁盘分区界面,点刷新按钮发现解决了问题。
另外Acronis Disk Director这款软件可以在基本磁盘和动态磁盘间自由转换,而且是无损数据的,转换速度也非常快,基本是重启一下操作系统就搞定。转换前:动态磁盘;转换后:基本磁盘,分区毫发无损。最后祝大家好运。
在DOS下完全不知道怎么操作。我本来是按照这个一步一步来的,第1步,进入命令提示符状态(系统下的命令提示符不可用,这是关键),键入:diskpart命令。 第2步,在DISKPART提示符下,键入:list disk命令,显示当前所有磁盘信息。并记下要转换成基本磁盘的动态磁盘号。 第3步,在DISKPART提示符下,键入:select disk n(n代表磁盘号)。 第4步,在DISKPART提示符下,键入:detail disk 命令,显示当系统所有磁盘的详细信息。 第5步,对于磁盘上的每个卷,在DISKPART提示符下,键入:select volume=n命令,选择要转换的磁盘卷。 第6步,在DISKPART提示符下,键入:delete volume命令,删除磁盘卷。 第7步,重复以上第5步和第6步,直到动态磁盘上的所有卷都删除了。 第8步,在DISKPART提示符下,再次键入:select disk n命令,指定要转化为基本磁盘的磁盘号。 第7步,在DISKPART提示符下,键入:convert basic命令,即可完成动态磁盘到基本磁盘的转换。
到了第七部就出现这个问题了。现在应该怎样在DOS下显示?我进不去windows现在,用
盘也没法恢复
这个程序主要对动态链表的建立、删除、插入的完整程序,注释很详尽对刚学习c语言的人来说应该有所帮助吧,程序是我在.cpp格式下运行好的。
/******************************************
******
*
* 文件名 :C practice
* 创建时间 : 2013-1-18
* 文件描 : c的基础练习 链表的
* 建立及使用
* 错误记录及修改:
* 在动态链表输出时出错
* p->num!=0 改为p->!=NULL;原因在于最后输入
* 0 0时没有将最后的链表建立进去,当访问
* p->num时没有值,最后输错出错
*******************************************
******/
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define Len sizeof(struct student) //定义一个结构体等长的常量len,用于给新的结构体分配空间
/*********************************
结构体名:student
**********************************/
struct student
{
int num;
int score;
struct student *next;
};
struct student *head,*p1,*p2;
int n=0; //用于记录插入链表的个数
/*********************************
函数名 :*creat()
参数 :无
功能 :用于插入新的链表
返回值 :返回链表的首地址 head
*********************************/
struct student *creat()
{
head=NULL;
p1=(struct student*)malloc(Len); //给新的节点分配空间
p2=p1;
puts("请输入学生号和成绩");
scanf("%d %d",&(p1->num),&(p1->score));
while(p1->num!=0)
{
n++;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct student*)malloc(Len);
printf("建立链表%d\n",n);
scanf("%d %d",&(p1->num),&(p1->score));
}
p2->next=NULL;
puts("链表建立结束");
return head;
}
/*******************************************
函数名 :print()
参数 :结构体的首地址 *head1
功能 :输出链表
返回值 : 无
*******************************************/
void print(struct student *head1)
{
struct student *p3;
p3=head1;
puts("输出链表");
puts("学号 成绩");
while(p3!=NULL)
{
printf("%d %d\n",p3->num,p3->score);
p3=p3->next;
}【把动态删除了是为什么】
}
/*******************************************
函数名 :*del()
参数 :链表首地址 *head 以及要删除的学习
学号
功能 :把指定学号的学生信息从链表中
删除掉,
返回值 :返回链表的首地址head
********************************************/
struct student *del(struct student *head ,int num)
{
struct student *sp1,*sp2;
if(head==NULL) {printf("list is null!"); goto End;}
sp1=head;
while(num!=sp1->num) //删除的不是所要找的结点
{
sp2=sp1;sp1=sp1->next; //当节点中的学号不想等时移动指针sp1 }
if(num==sp1->num)
{
if(sp1==head)
{
head=sp1->next; //若sp1指向的是首结点,把第二个结点地址给head
}
else if(sp1->next==NULL) /*若sp1指向的最后一个结点,把倒数第二个 sp2->next=NULL作为最后一个结点*/ {
sp2->next=NULL;
}
else
{
sp2->next=sp1->next; //否则删除sp1所指的结点
}
n--;
printf("已删除%d",num);
}
else printf("找不到该节点\n");
End :;
return head;
}
/********************************************
函数名 :*insert()
参数 :链表首地址*head 和要插入新结点
地址*newstu
功能 :在链表中再插入新的结点
返回值 :返回新的链表首地址head
*********************************************/
struct student *insert(struct student *head,
struct student *newstu)
{
struct student *p0,*sp1,*sp2;
sp1=head; //使sp1指向第一个结点
p0=newstu; //使p0指向新结点的地址
if(head==NULL) //原来的链表是空的
{
head=p0;
p0->next=NULL;
}
else
{
while(sp1->num<p0->num&&sp1->next!=NULL)
{
sp2=sp1; //使sp2指向刚才sp1的结点,移动sp1指针到下一个结点
sp1=sp1->next;
}
if(p0->num<sp1->num)
{
if(head==sp1)
{
head=p0; //插入到原来第一个结点之前
p0->next=sp1; //让新的结点指向第一个结点
}
else
{
sp2->next=p0; //否则插入到sp2和sp1之间
p0->next=sp1;
}
}
n++;
}
return head; //返回新的首地址;
}
void main()
{
struct student *p,newstu;
int num;
puts("创建链表");
p=creat(); //创建链表
print(p); //输出全部链表
puts("请输入要删除的学号");
scanf("%d",&num);
p=del(p,num); // 删除链表
print(p);
puts("请输入插入学生的学号和成绩");
scanf("%d %d",&newstu.num,&newstu.score);
p=insert(p,&newstu); //插入链表 print(p);
print(p);
free(p1);
free(p2);
free(head);
}
新开一个project,然后拖两个Button放在窗体上
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btnAddButton: TButton;【把动态删除了是为什么】
btnDeleteLast: TButton;
procedure btnAddButtonClick(Sender: TObject);
procedure btnDeleteLastClick(Sender: TObject);
private
{ Private declarations }
procedure CustomButtonClick(Sender: TObject);
public
{ Public declarations }
end;
Var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnAddButtonClick(Sender: TObject);
var
NewButton: TButton; // 新 Button的指针
begin
// 在内存中创建一个 Button,拥有者为self,这样当窗体 destory时,这个新button // 能够被自动释放
NewButton := TButton.Create(Self);
With NewButton do
begin
Top := 60; // button 的出现的坐标
Width := 60; // button 的宽度
Left := Width * (Self.ControlCount - 2);
Parent := Self; // 指明在那个窗体显示
OnClick := CustomButtonClick; // 指定button click事件 Caption := Button + IntToStr(Self.ControlCount - 2); end; // with
end;
procedure TForm1.btnDeleteLastClick(Sender: TObject); begin
// 确定窗体上有新的button
if Self.ControlCount > 2 then
// 删除最后新建的 button
TButton(Controls[ControlCount - 1]).Destroy;
end;
procedure TForm1.CustomButtonClick(Sender: TObject); begin
// 根据 Sender 来判断哪个新建的button click
ShowMessage(TButton(Sender).Caption + Pressed); end;
end.
如何删除DLL文件(动态链接程序库)
碰到不能删除DLL文件(动态链接程序库),要怎么办呢?
先说说何谓"动态链接程序库"。所谓"动态链接程序库",英文名称为Dynamic Linking Library,以下简称DLL,其用途在于为其他应用程序提供其本身并不具备的功能。比如,假设系统中有一DLL具备了与远端系统进行网络联接的功能,我们假设其名称为Network.dll;如果有另外一个应用程序想使用该功能,则这个程序只需在执行时与Network.dll进行动态链接(Dynamic Linking),就可以运用Network.dll的网络联接功能来实现远端联接系统。简单地说,DLL的特性是:
1、DLL本身无法自行执行,必须靠其他程序调用 。
2、在系统刚建立时 (如刚装好windows时),系统中即存在有一定数量的DLL,而某些应用程序亦会将自已所需的DLL添至系统中,导致DLL的数量随应用程序的增加而增加。
大家有时候是不是遇到某某文件删不掉之类的。而且有很多都是dll文件。虽然解决这个问题的方法有很多种。而且也可以把他删除,有没有想过是为什么删不掉呢??这是因为你运行的某个程序正在调用这个dll文件。正在使用的文件是当然不可能给你删除的。那么,到底是哪个程序在调用这个dll文件呢。我教大家一个方法可以把那个程序很容易的找出来。
在运行里输入cmd进入命令提示符。
然后输入命令tasklist /m>c:\123.txt 回车。
是不是没有任何反应?? 不要急。到C盘下面去找一找,是不是有了一个123.txt?(当然。你可以自己设定文件的输出路径,名字,甚至后缀。但要是文本文件哦。。) 打开他。里面就是目前运行的各个程序正在调用的dll文件。 把不能删除的dll文件的名字记下来。然后到记事本里去编辑-查找。输入对应的dll文件。是不是找出来了??找出来了后问题就好办多了。打开任务管理器。把对应的那个程序给关了。。就可以顺利删除了。。那就不必进安全模式,进DOS那么麻烦了。。。 当然。有些应用程序是以服务形式运行的。那么你就有可能查到的是svhost.exe但是。里面有很多个哦。。这个也好办。仍然打开命令提示符。输入tasklist /svc,当然,你也可以把他输出为文本文件,如tasklist /svc>C:\234.txt。看到了吗?每个svchost.exe后面是不是对应有一个ID呢?有了ID一对照也可以知道是哪个服务了。
上一篇:观致3新型发动机
下一篇:县环保局维稳防邪工作领导小组