VisualC++6.0 MFC基础教程:AFX_EXT_CLASS在DLL中的使用

需积分: 48 8 下载量 160 浏览量 更新于2024-07-13 收藏 3.26MB PPT 举报
"使用AFX_EXT_CLASS导出-vc++、MFC基础教程" 在MFC(Microsoft Foundation Classes)框架中,创建扩展DLL(Dynamic Link Library)时,需要将类导出以便于其他应用程序或DLL使用。这里讲解的是如何利用`AFX_EXT_CLASS`宏来实现这一目的。`AFX_EXT_CLASS`是一个灵活的宏,它根据上下文的不同,可以作为导出或导入类的标识。 在MFC扩展DLL中,如果你想要导出一个类,通常会在类定义前加上`AFX_EXT_CLASS`宏。例如: ```cpp AFX_EXT_CLASS CMyExportedClass { public: // 成员函数... }; ``` 当`AFX_EXT_CLASS`用于DLL的实现中,它相当于`__declspec(dllexport)`,指示编译器导出类。而在使用该DLL的应用程序或其他DLL中,如果引用了这个类,`AFX_EXT_CLASS`则相当于`__declspec(dllimport)`,用于导入类。 然而,只使用`AFX_EXT_CLASS`还不够,因为类的成员函数也需要导出。通常,你需要显式地为每个需要导出的成员函数添加`__declspec(dllexport)`。例如: ```cpp AFX_EXT_CLASS CMyExportedClass { public: __declspec(dllexport) void MyExportedFunction(); // ... }; ``` 当然,如果你有大量类和成员函数需要导出,手动添加`__declspec(dllexport)`可能会变得繁琐。这时,你可以选择使用模块定义文件(.def)来指定导出。在模块定义文件中,列出要导出的类和函数,编译器会自动处理导出过程。例如,在.def文件中写入: ```def LIBRARY MyDll EXPORTS DllEntry @1 CMyExportedClass @2 CMyExportedClass::MyExportedFunction @3 ``` 这种方式的优点在于,不需要在源代码中为每个导出的类和函数添加`__declspec(dllexport)`,使得代码更整洁。 关于MFC的基础教程,本资源包含14章、442页的内容,覆盖了从Visual C++基础到MFC的深入话题。第一章介绍了Visual C++ 6.0的概述,强调了它是C++的集成开发环境,特别提到了MFC类库,它极大地简化了Windows应用程序的开发。同时,教程还涵盖了控件使用、多线程编程、多媒体编程、网络编程和动态链接库(如使用AFX_EXT_CLASS导出)的使用等内容,适合初学者入门学习MFC。 在实际使用中,启动Visual C++ 6.0开发环境时,可以通过桌面快捷方式或者从"开始"菜单的Microsoft Visual Studio 6.0目录中找到。每次启动时,系统会显示一个【Tip of the Day】对话框,提供编程小贴士,帮助用户更好地理解和使用这个强大的开发工具。