摘要: 应用程序进程本身及其调用的每个DLL模块都具有一个全局唯一的HINSTANCE句柄,它们代表了DLL或EXE模块在进程虚拟空间中的起始地址。进程本身的模块句柄一般为0x400000,而DLL模块的缺省句柄为0x10000000。如果程序同时加载了多个DLL,则每个DLL模块都会有不同的 HINSTANCE。应用程序在加载DLL时对其进行了重定位。 共享MFC DLL(或MFC扩展DLL)的规则DLL涉及到HINSTANCE句柄问题,HINSTANCE句柄对于加载资源特别重要。EXE和DLL都有其自己的资源,而且这些资源的ID可能重复,应用程序需要通过资源模块的切换来找到正确的资源。如果应用程序 阅读全文
posted @ 2011-06-02 20:39 积木 阅读(3823) 评论(0) 推荐(1) 编辑
摘要: 导出:extern "C" _declspec(dllexport) : 表示这个函数是DLL导出函数,可以被外部引用。导出类 class _declspec(dllexport) classname{...}AFX_EXT_CLASS导入:在应用工程中引用DLL中全局变量的一个更好方法是:extern int _declspec(dllimport) global; //用_declspec(dllimport)导入Class _declspec(dllimport) classname 来导入类调用约定:1. __stdcall 可让VC 编写的DLL被其他语言编写的程 阅读全文
posted @ 2011-06-02 20:28 积木 阅读(675) 评论(0) 推荐(0) 编辑
摘要: DLL类型判断:1. MFC规则DLL 没有界面要求 theApp 入口2. MFC扩展DLL 有界面导出 DllMain 入口3. Win32DLL APIENTRY DllMain 入口DLL分类:1。Non-MFC DLL(非MFC动态库):不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用;2。MFC Regular DLL(MFC规则DLL):非MFC动态库MFC规则DLL 包含一个继承自CWinApp的类,但其无消息循环;3。MFC Extension DLL(MFC扩展DLL):采用MFC的动态链接版本创建,它 只能被用MFC类库所编写的应用 阅读全文
posted @ 2011-06-02 20:03 积木 阅读(747) 评论(0) 推荐(0) 编辑