DLL的加载
来源:互联网 发布:java入门到放弃 编辑:程序博客网 时间:2024/05/10 23:58
DLL的使用分为两种,静态导入和动态导入DLL。其中整个类的导入常采用
静态的导入方法;而函数或方法的导入通常采用动态的导入方法。
一.静态使用
导入类的声明:
1.DLL工程的声明最好为扩展 MFC类型;
2.在DLL中有以下类声明
//MyClass.h
class AFX_EXT_CLASS CMyClass
{
............
};
3.在使用DLL的类的工程中,需要以下配置
A.在Project|Setting中的Link标签页的Object/library Modules 中加入*.lib
B.在Tools|Options中的Directories 标签页中的 Show directories for:下面的
Include files 中增加Myclass.h的路径;Lib files中增加*.lib 和*.dll路径。
C.在使用工程的代码中如下即可:
#include "MyClass.h"
......
CMyClass MyClass;
二.动态使用
动态使用DLL有个前提条件,必须知道DLL中的待引用函数名,配置必须有静态使用中的B项。
使用如下:
HINSTANCE g_hSmppDll = NULL;
typedef UINT MyFunc(char *); //DLL中的函数
MyFunc *pMyFunc=NULL;
g_hSmppDll =LoadLibrary("MyDll.dll");
ASSERT(g_hSmppDll );
pMyFunc=(MyFunc *)(GetProcAddress( g_hSmppDll, "MyFunc"));//引号中为DLL中的函数名
(*pMyFunc) ("ok");
在于一个*.lib文件。在编译动态链接库时,VC++会为动态链接库创建一个引入
库(IMPORT LIB),即*.lib。库文件中只包含一些指向外部DLL库的函数索引指针,而
不是真正的代码,用于解析DLL的加载地址,并定义动态链接库和用于声明的头文件
的完全路径名。然后为引入库定义一个头文件,用来声明DLL中的函数。开发人员在引用时,
要配置如下:
A.在Project|Setting中的Link标签页的Object/library Modules 中加入*.lib
B.在Tools|Options中的Directories 标签页中的 Show directories for:下面的
Include files 中增加Myclass.h的路径;Lib files中增加*.lib 和*.dll路径。
这是一种常用的方法。实际上,应用程序 就是通过这种方式来访问Windows 的API函数。
WINDOWS为其内核动态链接库生成引入库并提供了头文件。应用程序在编译时将引入
库的信息 带入可执行文件中,运行时通过引入库信息访问API函数。
静态的导入方法;而函数或方法的导入通常采用动态的导入方法。
一.静态使用
导入类的声明:
2.在DLL中有以下类声明
//MyClass.h
class AFX_EXT_CLASS CMyClass
{
............
};
A.在Project|Setting中的Link标签页的Object/library Modules 中加入*.lib
B.在Tools|Options中的Directories 标签页中的 Show directories for:下面的
Include files 中增加Myclass.h的路径;Lib files中增加*.lib 和*.dll路径。
C.在使用工程的代码中如下即可:
#include "MyClass.h"
......
CMyClass MyClass;
二.动态使用
动态使用DLL有个前提条件,必须知道DLL中的待引用函数名,配置必须有静态使用中的B项。
使用如下:
HINSTANCE g_hSmppDll = NULL;
typedef UINT MyFunc(char *); //DLL中的函数
MyFunc *pMyFunc=NULL;
g_hSmppDll =LoadLibrary("MyDll.dll");
ASSERT(g_hSmppDll );
pMyFunc=(MyFunc *)(GetProcAddress( g_hSmppDll, "MyFunc"));//引号中为DLL中的函数名
(*pMyFunc) ("ok");
在于一个*.lib文件。在编译动态链接库时,VC++会为动态链接库创建一个引入
库(IMPORT LIB),即*.lib。库文件中只包含一些指向外部DLL库的函数索引指针,而
不是真正的代码,用于解析DLL的加载地址,并定义动态链接库和用于声明的头文件
的完全路径名。然后为引入库定义一个头文件,用来声明DLL中的函数。开发人员在引用时,
要配置如下:
A.在Project|Setting中的Link标签页的Object/library Modules 中加入*.lib
B.在Tools|Options中的Directories 标签页中的 Show directories for:下面的
Include files 中增加Myclass.h的路径;Lib files中增加*.lib 和*.dll路径。
WINDOWS为其内核动态链接库生成引入库并提供了头文件。应用程序在编译时将引入
- 加载dll的类
- DLL的加载
- 关于DLL的加载
- 简单的dll加载
- 正确的加载DLL
- dll的动态加载
- 无法加载DLL (oci.dll)的解决方案
- 无法加载DLL xx.dll的解决方案
- DLL的静态加载和动态加载
- 实现Dll的延迟加载
- dll动态加载的方式
- 静态加载dll的问题
- VC的DLL加载方法
- 关于DLL加载的问题
- 动态加载DLL的测试
- dll加载问题的解决方法
- C++ 加载DLL的方法
- dll文件的加载顺序
- netmessagebuffersend示例
- VC++讲座笔记-(1)Windows程序内部运行机制
- MySQL数据库备份(3)
- Lanecat网猫案例小议
- CSS中的滑动门技术
- DLL的加载
- C++
- 菜鸟入门之浅谈函数重载和多态的区别
- Location Intelligence Websites
- MFC程序框架的剖析2
- 某文学网站挂马logo.jpg/logo.exe
- MySQL数据库备份(1)
- CSS教程绪论
- 关于struct结构中字节对齐问题