1.包含 EXE 文件的目录
2.进程的当前工作目录
3.Windows 系统目录
4.Windows 目录
5.列在 Path 环境变量中的一系列目录
MFC 中的 DLL
a、Non-MFC DLL:指的是不用 MFC 的类库结构,直接用 C 语言写的 DLL,其输出的
函数一般用的是标准 C 接口,并能被非 MFC 或 MFC 编写的应用程序所调用。
b、Regular DLL:和下述的 Extension DLLs 一样,是用 MFC 类库编写的。明显的特
点是在源文件里有一个继承 CWinApp 的类。其又可细分成静态连接到 MFC 和动态连接到
MFC 上的。
静态连接到 MFC 的动态连接库只被 VC 的专业般和企业版所支持。该类 DLL 应用程序
里头的输出函数可以被任意 Win32 程序使用,包括使用 MFC 的应用程序。输入函数有如
下形式:
extern "C" EXPORT YourExportedFunction( );
如果没有 extern "C"修饰,输出函数仅仅能从 C++代码中调用。
DLL 应用程序从 CWinApp 派生,但没有消息循环。
动态链接到 MFC 的规则 DLL 应用程序里头的输出函数可以被任意 Win32 程序使用,
包括使用 MFC 的应用程序。但是,所有从 DLL 输出的函数应该以如下语句开始:
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
此语句用来正确地切换 MFC 模块状态。
Regular DLL 能够被所有支持 DLL 技术的语言所编写的应用程序所调用。在这种动态
连接库中,它必须有一个从 CWinApp 继承下来的类,DLLMain 函数被 MFC 所提供,不
用自己显式的写出来。
c、Extension DLL:用来实现从 MFC 所继承下来的类的重新利用,也就是说,用这种
类型的动态连接库,可以用来输出一个从 MFC 所继承下来的类。它输出的函数仅可以被使
用 MFC 且动态链接到 MFC 的应用程序使用。可以从 MFC 继承你所想要的、更适于你自
己用的类,并把它提供给你的应用程序。你也可随意的给你的应用程序提供 MFC 或 MFC
继承类的对象指针。Extension DLL 使用 MFC 的动态连接版本所创建的,并且它只被用
MFC 类库所编写的应用程序所调用。Extension DLLs 和 Regular DLLs 不一样,它没有
一个从 CWinApp 继承而来的类的对象,所以,你必须为自己 DLLMain 函数添加初始化
代码和结束代码。