dllexport和dllimport的区别
2015-12-03 15:19
190 查看
__declspec(dllexport)
声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类
__declspec(dllimport)
声明一个导入函数,是说这个函数是从别的DLL导入。我要用。一般用于使用某个dll的exe中 不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它可以确定函数是否存在于 DLL 中,这使得编译器可以生成跳过间接寻址级别的代码,而这些代码通常会出现在跨 DLL 边界的函数调用中。但是,必须使用 __declspec(dllimport)
才能导入 DLL 中使用的变量。
转载地址:http://blog.chinaunix.net/uid-25958655-id-4193134.html
__declspec(dllexport)
声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类
__declspec(dllimport)
声明一个导入函数,是说这个函数是从别的DLL导入。我要用。一般用于使用某个dll的exe中 不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它可以确定函数是否存在于 DLL 中,这使得编译器可以生成跳过间接寻址级别的代码,而这些代码通常会出现在跨 DLL 边界的函数调用中。但是,必须使用 __declspec(dllimport)
才能导入 DLL 中使用的变量。
转载地址:http://blog.chinaunix.net/uid-25958655-id-4193134.html
相关文章推荐
- java泛型中? super T和? extends T的区别
- Android——蓝牙连接打印机
- MySQL命令大全
- 搞搞阿里云 及 centos7.0 成功安装docker
- Linux用户管理
- 【Android工具】手机屏幕录制并转换成GIF
- 哥德巴赫猜想 POJ2909
- UIView动画
- Tomcat 部署项目报错文件被锁 If a file is locked .
- iOS客户端公共WIFI解决方案
- Android Studio Start Failure
- 防止已启动的VBScript文件重复启动
- JavaScript使用DeviceOne开发实战(二) 生成调试安装包
- 迅为iTOP-4412开发板Ubuntu烧写方法
- ORA-00907:missing right parenthesis
- [MySQL复制异常]Cannot execute statement: impossible to write to binary log since statement is in row for
- 数组转对象
- JavaScript使用DeviceOne开发实战(一) 配置和起步
- hive udf使用间隔
- Hive_4. DML -- Functions & Operators & Transactions