创建DLL动态链接库——模块定义法(def)
DLL模块定义法(Module-Definition File,即DEF):在VS家族IDE中,根据提示新增.def文件,如下:
LIBRARY 关键字;
mytestDll 库名;
DLL_ADD 需要导的函数名;
DLL_SUB 需要导的函数名;
DLL_MUL 需要导的函数名;
DLL_DIV 需要导的函数名;
DEF保留字:
APPLOADER1 |
INITINSTANCE2 |
PRELOAD |
BASE |
IOPL |
PRIVATE |
CODE |
LIBRARY1 |
PROTMODE2 |
CONFORMING |
LOADONCALL1 |
PURE1 |
DATA |
LONGNAMES2 |
READONLY |
DESCRIPTION |
MOVABLE1 |
READWRITE |
DEV386 |
MOVEABLE1 |
REALMODE1 |
DISCARDABLE |
MULTIPLE |
RESIDENT |
DYNAMIC |
NAME |
RESIDENTNAME1 |
EXECUTE-ONLY |
NEWFILES2 |
SECTIONS |
EXECUTEONLY |
NODATA1 |
SEGMENTS |
EXECUTEREAD |
NOIOPL1 |
SHARED |
EXETYPE |
NONAME |
SINGLE |
EXPORTS |
NONCONFORMING1 |
STACKSIZE |
FIXED1 |
NONDISCARDABLE |
STUB |
FUNCTIONS2 |
NONE |
VERSION |
HEAPSIZE |
NONSHARED |
WINDOWAPI |
IMPORTS |
NOTWINDOWCOMPAT1 |
WINDOWCOMPAT |
IMPURE1 |
OBJECTS |
WINDOWS |
INCLUDE2 |
OLD1 |
1 链接器在遇到此术语时发出警告(“忽略”)。不过,该保留字仍然保留。
2 链接器忽略该字,但是不发出警告。
用例如下:
通过以上三个文件即可编译出mytestDll.lib和mytestDll.dll两个库文件。
创建DLL动态链接库——模块定义法(def)的更多相关文章
- 创建DLL动态链接库——声明导出法
DLL声明导出法:是通过使用__declspec(dllexport),添加到需要导出的函数前,进行声明. 头文件定义如下(OPdll.h): 源文件定义如下(OPdll.cpp): 通过以上两个文件 ...
- 模块定义文件.def
一作用 DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明:另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供 ...
- 创建dll动态链接库,并使用java调用
参考文章:http://www.cnblogs.com/matthew-2013/p/3480296.html http://blog.csdn.net/g710710/article/details ...
- VC6.0创建DLL动态链接库四大要素
原文:http://blog.csdn.net/wanghaihao_1/article/details/51098451 要成功地编辑,编译和链接一个动态链接库,应该包括以下要素:建立工程文件,使用 ...
- DLL动态链接库导出函数方法 -- 动态导出(.def文件导出)
简介 动态链接库最大的优势在于可以提供给其他应用程序共享的资源,最小化应用程序代码的复杂度,其中一个十分重要的功能就是dll可以导出封装函数的功能.导出函数有两种主要方式,分别是静态导入和动态导入,本 ...
- DLL动态链接库的创建
dll的创建主要有两种方法:一是使用 __declspec(dllexport) 创建dll,二是使用模块定义(.def)文件创建dll. 使用 __declspec(dllexport) 创建dll ...
- VS2013 c++ 生成和调用DLL动态链接库(.def 方法已验证OK)
转载:https://blog.csdn.net/zhunianguo/article/details/52294339 .def 方法 创建动态库方法: 创建动态库是生成 .dll .lib 两个个 ...
- C++编写DLL动态链接库的步骤与实现方法
原文:http://www.jb51.net/article/90111.htm 本文实例讲述了C++编写DLL动态链接库的步骤与实现方法.分享给大家供大家参考,具体如下: 在写C++程序时,时常需要 ...
- VS2013环境生成和调用DLL动态链接库
http://blog.csdn.net/u010273652/article/details/25514577 创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> ...
随机推荐
- jQuery实现评论弹幕、弹幕漂浮、滚动代码
1.html代码和jquery代码: <!DOCTYPE html> <html> <head lang="en"> <meta char ...
- jQuery设置div的自适应布局
一.HTML代码: <div class="ui-wraper" id="Wraper"> </div> 二.CSS代码: html { ...
- ajax事件执行顺序
1.ajaxStart(全局事件) 2.beforeSend 3.ajaxSend(全局事件) 4.success(请求成功时调用) 5.ajaxSuccess(全局事件) 6.error 7.aja ...
- QT编写TCP的问题
---->>>TCP编写实战的小项目 TCP套接字:主机(IP+端口) 和 服务器(IP+端口) 进行通讯,需要中间的一个锁套进行 啮合,这个锁套就是套接字的作用. 其中套接字的使 ...
- [Unity插件]Lua行为树(九):条件节点调整
先看一下之前的条件节点是怎么设计的: BTConditional.lua BTConditional = BTTask:New(); local this = BTConditional; this. ...
- html A标签 绑定点击事件。跳转页面。处理
在平时的页面中,肯定有需要点击A标签 进行处理. 这时候习惯性的绑定一个点击事件进行数据处理. 在A标签中 herf="#" 然后绑定一个点击事件. 或者在A标签里面的元素里面有一 ...
- 编辑器:IDE(深坑不填)
http://top.jobbole.com/37542/ Facebook 和 GitHub 两大巨头联手推出 Atom-IDE 2017-9-22 https://www.zhihu.com/qu ...
- python中strip、startswith、endswith
strip(rm)用来删除元素内的空白符: rm对应要删除空白符的元素,当rm为空(strip())时删除所有元素的空白符 startswith.endswith用来查找开头或结尾条件的元素 例子: ...
- HTTP Status 400 - description The request sent by the client was syntactically incorrect.
HTTP Status 400 - type Status report message description The request sent by the client was syntacti ...
- RDD中的cache() persist() checkpoint()
cache只有一个默认的缓存级别MEMORY_ONLY ,而persist可以根据StorageLevel设置其它的缓存级别. cache以及persist都不是action. 被重复使用的(但是)不 ...