怎样编写MFC动态连接库,up有分(用winzard的建立工程以后该怎么办?)

bingkuijia 2003-10-21 10:48:08
用winzard建立工程以后,怎样编写动态连接库,它的步骤是怎样的?
...全文
98 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
keansun 2003-10-22
  • 打赏
  • 举报
回复
.4指针参数是如何传递内存的?
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么?



void GetMemory(char *p, int num)

{

p = (char *)malloc(sizeof(char) * num);

}

void Test(void)

{

char *str = NULL;

GetMemory(str, 100); // str 仍然为 NULL

strcpy(str, "hello"); // 运行错误

}


示例7-4-1 试图用指针参数申请动态内存



毛病出在函数GetMemory中。编译器总是要为函数的每个参数制作临时副本,指针参数p的副本是 _p,编译器使 _p = p。如果函数体内的程序修改了_p的内容,就导致参数p的内容作相应的修改。这就是指针可以用作输出参数的原因。在本例中,_p申请了新的内存,只是把_p所指的内存地址改变了,但是p丝毫未变。所以函数GetMemory并不能输出任何东西。事实上,每执行一次GetMemory就会泄露一块内存,因为没有用free释放内存。

如果非得要用指针参数去申请内存,那么应该改用“指向指针的指针”,见示例7-4-2。



void GetMemory2(char **p, int num)

{

*p = (char *)malloc(sizeof(char) * num);

}

void Test2(void)

{

char *str = NULL;

GetMemory2(&str, 100); // 注意参数是 &str,而不是str

strcpy(str, "hello");

cout<< str << endl;

free(str);

}


示例7-4-2用指向指针的指针申请动态内存



由于“指向指针的指针”这个概念不容易理解,我们可以用函数返回值来传递动态内存。这种方法更加简单,见示例7-4-3。



char *GetMemory3(int num)

{

char *p = (char *)malloc(sizeof(char) * num);

return p;

}

void Test3(void)

{

char *str = NULL;

str = GetMemory3(100);

strcpy(str, "hello");

cout<< str << endl;

free(str);

}


示例7-4-3 用函数返回值来传递动态内存



用函数返回值来传递动态内存这种方法虽然好用,但是常常有人把return语句用错了。这里强调不要用return语句返回指向“栈内存”的指针,因为该内存在函数结束时自动消亡,见示例7-4-4。



char *GetString(void)

{

char p[] = "hello world";

return p; // 编译器将提出警告

}

void Test4(void)

{

char *str = NULL;

str = GetString(); // str 的内容是垃圾

cout<< str << endl;

}


示例7-4-4 return语句返回指向“栈内存”的指针



用调试器逐步跟踪Test4,发现执行str = GetString语句后str不再是NULL指针,但是str的内容不是“hello world”而是垃圾。

如果把示例7-4-4改写成示例7-4-5,会怎么样?



char *GetString2(void)

{

char *p = "hello world";

return p;

}

void Test5(void)

{

char *str = NULL;

str = GetString2();

cout<< str << endl;

}


示例7-4-5 return语句返回常量字符串



函数Test5运行虽然不会出错,但是函数GetString2的设计概念却是错误的。因为GetString2内的“hello world”是常量字符串,位于静态存储区,它在程序生命期内恒定不变。无论什么时候调用GetString2,它返回的始终是同一个“只读”的内存块。



7.5 free和delete把指针怎么啦?
keansun 2003-10-22
  • 打赏
  • 举报
回复
兄弟,给你看看内存操作的原则性,出自《高质量C++/C编程指南》
程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。

7.1内存分配方式
内存分配方式有三种:

(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。

(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

7.2常见的内存错误及其对策
发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走,错误又发作了。

常见的内存错误及其对策如下:

u 内存分配未成功,却使用了它。

编程新手常犯这种错误,因为他们没有意识到内存分配会不成功。常用解决办法是,在使用内存之前检查指针是否为NULL。如果指针p是函数的参数,那么在函数的入口处用assert(p!=NULL)进行检查。如果是用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)进行防错处理。



u 内存分配虽然成功,但是尚未初始化就引用它。

犯这种错误主要有两个起因:一是没有初始化的观念;二是误以为内存的缺省初值全为零,导致引用初值错误(例如数组)。

内存的缺省初值究竟是什么并没有统一的标准,尽管有些时候为零值,我们宁可信其无不可信其有。所以无论用何种方式创建数组,都别忘了赋初值,即便是赋零值也不可省略,不要嫌麻烦。



u 内存分配成功并且已经初始化,但操作越过了内存的边界。

例如在使用数组时经常发生下标“多1”或者“少1”的操作。特别是在for循环语句中,循环次数很容易搞错,导致数组操作越界。



u 忘记了释放内存,造成内存泄露。

含有这种错误的函数每被调用一次就丢失一块内存。刚开始时系统的内存充足,你看不到错误。终有一次程序突然死掉,系统出现提示:内存耗尽。

动态内存的申请与释放必须配对,程序中malloc与free的使用次数一定要相同,否则肯定有错误(new/delete同理)。



u 释放了内存却继续使用它。

有三种情况:

(1)程序中的对象调用关系过于复杂,实在难以搞清楚某个对象究竟是否已经释放了内存,此时应该重新设计数据结构,从根本上解决对象管理的混乱局面。

(2)函数的return语句写错了,注意不要返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。

(3)使用free或delete释放了内存后,没有将指针设置为NULL。导致产生“野指针”。



l 【规则7-2-1】用malloc或new申请内存之后,应该立即检查指针值是否为NULL。防止使用指针值为NULL的内存。

l 【规则7-2-2】不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。

l 【规则7-2-3】避免数组或指针的下标越界,特别要当心发生“多1”或者“少1”操作。

l 【规则7-2-4】动态内存的申请与释放必须配对,防止内存泄漏。

l 【规则7-2-5】用free或delete释放了内存之后,立即将指针设置为NULL,防止产生“野指针”。

7.3指针与数组的对比
C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。

指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。

下面以字符串为例比较指针与数组的特性。



7.3.1 修改内容

示例7-3-1中,字符数组a的容量是6个字符,其内容为hello\0。a的内容可以改变,如a[0]= ‘X’。指针p指向常量字符串“world”(位于静态存储区,内容为world\0),常量字符串的内容是不可以被修改的。从语法上看,编译器并不觉得语句p[0]= ‘X’有什么不妥,但是该语句企图修改常量字符串的内容而导致运行错误。



char a[] = “hello”;

a[0] = ‘X’;

cout << a << endl;

char *p = “world”; // 注意p指向常量字符串

p[0] = ‘X’; // 编译器不能发现该错误

cout << p << endl;


示例7-3-1 修改数组和指针的内容



7.3.2 内容复制与比较

不能对数组名进行直接复制与比较。示例7-3-2中,若想把数组a的内容复制给数组b,不能用语句 b = a ,否则将产生编译错误。应该用标准库函数strcpy进行复制。同理,比较b和a的内容是否相同,不能用if(b==a) 来判断,应该用标准库函数strcmp进行比较。

语句p = a 并不能把a的内容复制指针p,而是把a的地址赋给了p。要想复制a的内容,可以先用库函数malloc为p申请一块容量为strlen(a)+1个字符的内存,再用strcpy进行字符串复制。同理,语句if(p==a) 比较的不是内容而是地址,应该用库函数strcmp来比较。



// 数组…

char a[] = "hello";

char b[10];

strcpy(b, a); // 不能用 b = a;

if(strcmp(b, a) == 0) // 不能用 if (b == a)



// 指针…

int len = strlen(a);

char *p = (char *)malloc(sizeof(char)*(len+1));

strcpy(p,a); // 不要用 p = a;

if(strcmp(p, a) == 0) // 不要用 if (p == a)




示例7-3-2 数组和指针的内容复制与比较





7.3.3 计算内存容量

用运算符sizeof可以计算出数组的容量(字节数)。示例7-3-3(a)中,sizeof(a)的值是12(注意别忘了’\0’)。指针p指向a,但是sizeof(p)的值却是4。这是因为sizeof(p)得到的是一个指针变量的字节数,相当于sizeof(char*),而不是p所指的内存容量。C++/C语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。

注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。示例7-3-3(b)中,不论数组a的容量是多少,sizeof(a)始终等于sizeof(char *)。



char a[] = "hello world";

char *p = a;

cout<< sizeof(a) << endl; // 12字节

cout<< sizeof(p) << endl; // 4字节


示例7-3-3(a) 计算数组和指针的内存容量



void Func(char a[100])

{

cout<< sizeof(a) << endl; // 4字节而不是100字节

}


示例7-3-3(b) 数组退化为指针

dzqsuper 2003-10-22
  • 打赏
  • 举报
回复
楼主你的问题是“怎样编写MFC动态连接库“
这个在winzard里面不是有直接的吗
直接可以生成DLL,我现在正天是在用这个呀

可能是你还没有把你的问题说明白
xieweibbs 2003-10-22
  • 打赏
  • 举报
回复
好,学习学习
lysbeyondlys 2003-10-22
  • 打赏
  • 举报
回复
看書剛看到這,學習!!
xushinhwa2003 2003-10-22
  • 打赏
  • 举报
回复
__declspec(dllexport) 定义你的输出函数!
goodboyaxj 2003-10-22
  • 打赏
  • 举报
回复
学习
flyycyu 2003-10-21
  • 打赏
  • 举报
回复
一样!用__declspec(dllexport) 定义你的输出函数!
babaoshan 2003-10-21
  • 打赏
  • 举报
回复
1.要创建一个动态连接库,选择File->New菜单,弹出New对话框。在Projects标签页下,选择“Win32 Dynamic-Link Library”。创建一个空的动态库工程,记住动态库工程的名称 MyDll.
2.加入一个.cpp文件,可以任意起名,注意如果没有这个文件,就不能生成动态库。
先把自己加的函数进行声明:
int MyFunc(int a);
复制下面的固定代码(也可以没有)

BOOL WINAPI DLLEntryPoint(HINSTANCE hDLL,DWORD dwReason,LPVOID Reserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
{//一些初始化代码
::MessageBox(NULL,"dll enter",NULL,MB_OK);
break;
}
case DLL_PROCESS_DETACH:
{//一些用于清理的代码
break;
}
}
return TRUE;
}

具体的定义自己的函数
int MyFunc(int a)
{
a+=100;
return a;
}
3.加入一个.def文件,必须是这个后缀名,不是所谓的Macro,找不到可以自己建一个这样的后缀名
复制下面的代码,注意LIBRARY后面就是动态库的名字(动态库工程的名字)

LIBRARY MyDll

DESCRIPTION 'ha ha My Dll Success'
EXPORTS

MyFunc

4.测试动态库
在自己的工程文件中加入以下代码,注意加在与自己用动态库的代码同一文件里
HINSTANCE ghMathsDLL=NULL;
typedef int (*SUMMARY)(int);
SUMMARY wodehanshu;

5.引入动态库与函数
if(ghMathsDLL!=NULL)
return; //动态库已打开
ghMathsDLL=LoadLibrary("动态库文件路径/MyDll.dll");
if(ghMathsDLL==NULL)//打开动态库失败
AfxMessageBox("Cannot load DLL file!");

wodehanshu=(SUMMARY)GetProcAddress(ghMathsDLL,"MyFunc");
int i;
i=wodehanshu(10);

6.附加关于动态库的
FARPROC pfn=GetProcAddress(ghMathsDLL,"MyFunc");//这也是取动态库函数地址的,但下面不知怎么用

HINSTANCE hinst;
hinst=GetModuleHandle("动态库文件路径/MyDll.dll");//如果hinst==NULL,则此程序没有引入指定的动态库,否则hinst就是动态库的地址,与LoadLibrary返回的一样。


//得到指定的动态库的路径,hinst由LoadLibrary返回
PTSTR path1;
path1=new char[90];
GetModuleFileName(hinst,path1,90);
MessageBox(path1);


FreeLibrary(hinst);//卸载动态库
bingkuijia 2003-10-21
  • 打赏
  • 举报
回复
大家帮忙阿
woaini5994 2003-10-21
  • 打赏
  • 举报
回复
在生成工程的时候,有几个选择
可以选那个,给出框架的选象。然后
这是比较初级,也适合初学者
bingkuijia 2003-10-21
  • 打赏
  • 举报
回复
给个例子啊!
最好用的分区工具,谁用谁知道好!!! Acronis Disk Director Suite Window 8/7/Vista/xp调整硬盘分区 注意:Acronis Disk Director Suite 中文简体汉化版有问题,一定要使用英文版本。 Acronis Disk Director Suite 调整硬盘分区的教程 1、安装:Acronis Disk Director Suite 的安装和Acronis Partition Expert 2003 的安装过程一样,中间让输入注册码,输入后一直下一步完成安装,然后会提示是否启动计算机,点击确定重新启动。Vista之家还是要可惜一下,这么强的软件,还是英文的,没有简体中文版,英文不好的,大家还是跟着刺客一起往下看截图和分步讲解吧。 2、重启启动计算机后,桌面上会有个“Acronis Disk Director Suite”的图标,双击运行。第一次运行Acronis Disk Director Suite ,和Acronis Partition Expert 200一样,仍然会提示软件的运行的模式,一种是自动模式(Automatic Mode),就是以向导模式运行,一种是手动模式(Manual Mode),Vista123建议大家使用手动模式,实际操作反而更简单。 3、进入软件的主窗体后,右上角Winzard板块里面有个Increase Free Space,我们就用这个功能来调整C盘,或者其他盘的分区,下面,Vista123姑且用C盘当作例子吧,因为Windows Vista用户大多都是苦恼于C盘的空间不足! 点击Increase Free Space: 想增加哪个分区的容量,就选择那个,我们就选择C吧。下一步点击next: 4、找个硬盘分区的剩余空间大的贡献一下,刺客在此就用F盘当例子吧,大家也看到了,刺客的t60本本就80g硬盘,所剩无几了各个分区。不废话了,选择f盘,然后next进行下一步。 5、下一步的窗口是调整C盘的容量(就是你刚才第3步选择的那个要增加空间的区),根据付出空间的那个分区的剩余空间,你自己滑动鼠标选择合适的吧。Vista之家就不截图了,简单的很。 5、Acronis Disk Director Suite 会弹出一个窗口,开始locking c盘和f盘,进行硬盘分区锁定,然后,就返回到软件主窗口。 6、看到菜单栏那个旗帜的图标没,就是commit的命令,意思是开始执行。点击之后,根据提示启动计算机。然后Acronis Disk Director Suite 会在进入Window Vista前把你的分区按照你的要求都调整好,非常方便!!
好用的磁盘分区助手,一键整合磁盘分区。 1、安装:Acronis Disk Director Suite 10.0 的安装和Acronis Partition Expert 2003 的安装过程一样,中间让输入注册码,输入后一直下一步完成安装,然后会提示是否启动计算机,点击确定重新启动。Vista之家还是要可惜一下,这么强的软件,还是英文的,没有简体中文版,英文不好的,大家还是跟着刺客一起往下看截图和分步讲解吧。 2、重启启动计算机后,桌面上会有个“Acronis Disk Director Suite”的图标,双击运行。第一次运行Acronis Disk Director Suite 10.0 ,和Acronis Partition Expert 200一样,仍然会提示软件的运行的模式,一种是自动模式(Automatic Mode),就是以向导模式运行,一种是手动模式(Manual Mode),Vista123建议大家使用手动模式,实际操作反而更简单。 3、进入软件的主窗体后,右上角Winzard板块里面有个Increase Free Space,我们就用这个功能来调整C盘,或者其他盘的分区,下面,Vista123姑且用C盘当作例子吧,因为Windows Vista用户大多都是苦恼于C盘的空间不足! 点击Increase Free Space:想增加哪个分区的容量,就选择那个,我们就选择C吧。下一步点击next: 4、找个硬盘分区的剩余空间大的贡献一下,刺客在此就用F盘当例子吧,大家也看到了,刺客的t60本本就80g硬盘,所剩无几了各个分区。不废话了,选择f盘,然后next进行下一步。 5、下一步的窗口是调整C盘的容量(就是你刚才第3步选择的那个要增加空间的区),根据付出空间的那个分区的剩余空间,你自己滑动鼠标选择合适的吧。Vista之家就不截图了,简单的很。 6、Acronis Disk Director Suite 10.0 会弹出一个窗口,开始locking c盘和f盘,进行硬盘分区锁定,然后,就返回到软件主窗口。 7、看到菜单栏那个旗帜的图标没,就是commit的命令,意思是开始执行。点击之后,根据提示启动计算机。然后Acronis Disk Director Suite 会在进入Window Vista前把你的分区按照你的要求都调整好,非常方便!
Acronis Disk Director Suite 10.0 Window 8.1/8/7/Vista/xp硬盘分区 注意:Acronis Disk Director Suite 10.0 中文简体汉化版有问题,一定要使用英文版本。 Acronis Disk Director Suite 10.0 调整硬盘分区的教程 1、安装:Acronis Disk Director Suite 10.0 的安装和Acronis Partition Expert 2003 的安装过程一样,中间让输入注册码,输入后一直下一步完成安装,然后会提示是否启动计算机,点击确定重新启动。Vista之家还是要可惜一下,这么强的软件,还是英文的,没有简体中文版,英文不好的,大家还是跟着刺客一起往下看截图和分步讲解吧。 2、重启启动计算机后,桌面上会有个“Acronis Disk Director Suite”的图标,双击运行。第一次运行Acronis Disk Director Suite 10.0 ,和Acronis Partition Expert 200一样,仍然会提示软件的运行的模式,一种是自动模式(Automatic Mode),就是以向导模式运行,一种是手动模式(Manual Mode),Vista123建议大家使用手动模式,实际操作反而更简单。 3、进入软件的主窗体后,右上角Winzard板块里面有个Increase Free Space,我们就用这个功能来调整C盘,或者其他盘的分区,下面,Vista123姑且用C盘当作例子吧,因为Windows Vista用户大多都是苦恼于C盘的空间不足! 点击Increase Free Space: 想增加哪个分区的容量,就选择那个,我们就选择C吧。下一步点击next: 4、找个硬盘分区的剩余空间大的贡献一下,刺客在此就用F盘当例子吧,大家也看到了,刺客的t60本本就80g硬盘,所剩无几了各个分区。不废话了,选择f盘,然后next进行下一步。 5、下一步的窗口是调整C盘的容量(就是你刚才第3步选择的那个要增加空间的区),根据付出空间的那个分区的剩余空间,你自己滑动鼠标选择合适的吧。Vista之家就不截图了,简单的很。 5、Acronis Disk Director Suite 10.0 会弹出一个窗口,开始locking c盘和f盘,进行硬盘分区锁定,然后,就返回到软件主窗口。 6、看到菜单栏那个旗帜的图标没,就是commit的命令,意思是开始执行。点击之后,根据提示启动计算机。然后Acronis Disk Director Suite 会在进入Window Vista前把你的分区按照你的要求都调整好,非常方便!! 7、Acronis Disk Director Suite 10.0究竟好在哪儿?看起来和老版本界面没有变化啊?请看下一篇文章: Partition Expert 10.0 的官方网站介绍: Acronis Disk Director Suite 10.0 Partition Manager Dividing your hard drive into individual partitions for your operating system, programs, data files, music, and images provides better organization and, most important, much better data safety in the event of a drive crash. Acronis Disk Director Suite 10.0 makes this task a breeze! The suite includes the Acronis Partition Expert product which allows you to automatically or manually merge, split, resize, copy, and move partitions without losing data. It also lets you reorganize the hard disk drive structure, optimize disk space usage and much more. The easiest partition software for all users Acronis sets a new partitioning and design standards. Now non-technical PC users can be insulated from
Acronis Disk Director Suite 10.0 Window 8.1/8/7/Vista/xp调整硬盘分区 注意:Acronis Disk Director Suite 10.0 中文简体汉化版有问题,一定要使用英文版本。 Acronis Disk Director Suite 10.0 调整硬盘分区的教程 1、安装:Acronis Disk Director Suite 10.0 的安装和Acronis Partition Expert 2003 的安装过程一样,中间让输入注册码,输入后一直下一步完成安装,然后会提示是否启动计算机,点击确定重新启动。Vista之家还是要可惜一下,这么强的软件,还是英文的,没有简体中文版,英文不好的,大家还是跟着刺客一起往下看截图和分步讲解吧。 2、重启启动计算机后,桌面上会有个“Acronis Disk Director Suite”的图标,双击运行。第一次运行Acronis Disk Director Suite 10.0 ,和Acronis Partition Expert 200一样,仍然会提示软件的运行的模式,一种是自动模式(Automatic Mode),就是以向导模式运行,一种是手动模式(Manual Mode),Vista123建议大家使用手动模式,实际操作反而更简单。 3、进入软件的主窗体后,右上角Winzard板块里面有个Increase Free Space,我们就用这个功能来调整C盘,或者其他盘的分区,下面,Vista123姑且用C盘当作例子吧,因为Windows Vista用户大多都是苦恼于C盘的空间不足! 点击Increase Free Space: 想增加哪个分区的容量,就选择那个,我们就选择C吧。下一步点击next: 4、找个硬盘分区的剩余空间大的贡献一下,刺客在此就用F盘当例子吧,大家也看到了,刺客的t60本本就80g硬盘,所剩无几了各个分区。不废话了,选择f盘,然后next进行下一步。 5、下一步的窗口是调整C盘的容量(就是你刚才第3步选择的那个要增加空间的区),根据付出空间的那个分区的剩余空间,你自己滑动鼠标选择合适的吧。Vista之家就不截图了,简单的很。 5、Acronis Disk Director Suite 10.0 会弹出一个窗口,开始locking c盘和f盘,进行硬盘分区锁定,然后,就返回到软件主窗口。 6、看到菜单栏那个旗帜的图标没,就是commit的命令,意思是开始执行。点击之后,根据提示启动计算机。然后Acronis Disk Director Suite 会在进入Window Vista前把你的分区按照你的要求都调整好,非常方便!! 7、Acronis Disk Director Suite 10.0究竟好在哪儿?看起来和老版本界面没有变化啊?请看下一篇文章: Partition Expert 10.0 的官方网站介绍: Acronis Disk Director Suite 10.0 Partition Manager Dividing your hard drive into individual partitions for your operating system, programs, data files, music, and images provides better organization and, most important, much better data safety in the event of a drive crash. Acronis Disk Director Suite 10.0 makes this task a breeze! The suite includes the Acronis Partition Expert product which allows you to automatically or manually merge, split, resize, copy, and move partitions without losing data. It also lets you reorganize the hard disk drive structure, optimize disk space usage and much more. The easiest partition software for all users Acronis sets a new partitioning and design standards. Now non-technical PC users can be insulated from the task using goal-oriented wizards, but experienced users can access a wide array of advanced functions. Our exclusive product design includes: • Automatic and Manual operating modes for both novices and experts • Goal-oriented, wizard-driven automatic partitioning for non-technical users • A big number of features with all manual controls for experienced users Ideal companion product to Acronis True Image. Together Acronis True Image and Acronis Partition Expert provide comprehensive partition management and system protection. You can create two partitions on your system, one for data and one for applications, using Acronis Partition Expert. Then you can backup your data partition regularly using Acronis True Image scheduler, ensuring that you capture changes to your data. You can also backup your system partition whenever you install new applications or apply new patches. Acronis exclusive • Dual operating mode design • FAT16, FAT32, NTFS, Linux Ext2, Ext3, ReiserFS, and Linux SWAP partition support. Special sector-by-sector support for copying and moving partitions of any other type. Key features • New! Split one partition into two and leave your data intact • New! Merge two partitions into one and leave your data untouched, even if file systems on the partitions are different • New! Explore partition data before performing partitioning operations • New! Troubleshoot issues and reasons for failure by viewing logs • Resize, copy, and move partitions without losing data* • Create and delete partitions of any type • Format partitions* • Automatically optimize hard disk space usage • Convert FAT16 <=> FAT32, Linux Ext2 <=> Ext3 partitions without losing data • Change cluster size automatically or manually • Browse through the detailed information about all hard disks, partitions and file systems • Hide or make visible partitions of any type • Preview changes made in partition layout before applying them to disk • Support large disks over 180 Gb

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧