易语⾔标准c动态库,⽤VS2017编写⼀个C++动态链接库(DLL)供第三⽅调⽤给易语⾔,。。。
1.⽤VS2017编写⼀个C++动态链接库(DLL)给 易语⾔,C++,C#等第三⽅调⽤
2.开发环境VS2017
创建DLL
第⼀步:
⾸先我们VS界⾯左上⾓:⽂件(F)-》新建项⽬-》visual C++ -》windows 桌⾯ -》动态链接库(DLL)
得到以下界⾯
第⼆步:
我们新建⼀个头⽂件:
第三步:
新建⼀个Dll1.cpp⽂件
在新建Dll1.cpp⽂件⾥⾯编写代码调用子程序的例子
1.需要⽤到头⽂件和
// Dll1.cpp : 定义 DLL 应⽤程序的导出函数。//
#include "Dll1.h"
#include "pch.h"
#include //两数相加
int WINAPI add(int n1, int n2)
{
return n1 + n2;
}
第四步:
我们在  头⽂件⾥:声明函数
#pragma once
int WINAPI add(int n1, int n2);
第五步:
导出函数:有 3种 导出⽅法,头⽂件和cpp都要改
1.第⼀种:在函数返回值类型前⾯加上 __declspec(dllexport)
__declspec(dllexport) int WINAPI add(int n1, int n2);
得到效果如图:
由于C++⽀持函数重载,国⼈称之为 “名称粉碎机制” 所以导出函数名会改变,第三⽅调⽤的时候需带如
图名称,显然不是很适合咱2.第⼆种:在函数返回值类型前⾯加上 extern “C” __declspec(dllexport) 指定该函数是个C语⾔的函数
extern "C" __declspec(dllexport) int WINAPI add(int n1, int n2);
得到效果如图:
第三⽅调⽤的时候需带如图名称了,显然也不是很合适
3.第三种:新建 “Dll1.def” ⽂件实现函数导出
在 “Dll1.def ” 写⼊代码:
LIBRARY
EXPORTS
add
.def ⽂件中的第⼀条 LIBRARY 语句不是必须的,但LIBRARY 语句后⾯的 DLL 的名称必须正确,即与⽣成的动态链接库的名称必须匹配。此语句将 .def ⽂件标识为属于 DLL。链接器将此名称放到 DLL 的导⼊库中。
EXPORTS语句列出名称,可能的话还会列出 DLL 导出函数的序号值。通过在函数名的后⾯加上 @ 符和⼀个数字,给函数分配序号值。当指定序号值时,序号值的范围必须是从 1 到 N,其中 N 是 DLL 导出函数的个数。
得到效果如图:
⽣成解决⽅案
此时我们就可以第三⽅程序调⽤这个DLL了;
易语⾔调⽤例⼦:
1.将DLL放到运⾏⽬录
.版本 2
.⽀持库 spec
.程序集 窗⼝程序集_启动窗⼝
.⼦程序 __启动窗⼝_创建完毕
调试输出 (“5+9的计算结果=”, add (5, 9)) .版本 2
.DLL命令 add, 整数型, "Dll1.dll", "add"
.参数 a, 整数型
.参数 b, 整数型

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。