C++DLL在E中的调用(C+E模式)
前言
考虑到使用E语言设计程序界面比较简单与方便,同时又有一些比较完善的 DirectUI 引擎的支持,故在一些实际的小项目中可以考虑用C/C++写核心,E写界面,两者取长补短,提高开发效率。本文分享如何在VS2017中用使用C++编写DLL文件并在E中进行调用。
(在E中借助自绘引擎做的界面)
一、编写DLL
1. 打开VS2017,文件->新建->项目-Visual C++->空项目,这里命名为demo。
2. 在 资源管理器->源文件 中新建一个名为 demo.cpp 的 C++ 源文件:
#include "demo.h"
#include<string.h>
using namespace std;
//返回整形的函数
int testInt()
{
return 10;
}
//返回字符串的函数
char *testString()
{
static char sample[100] = { 0 };
strcpy_s(sample, "demo");
return sample;
}
//有参数的函数
int add(int a, int b)
{
return a + b;
}
3. 在 资源管理器->源文件 中新建一个 demo.def 文件:
LIBRARY demo
EXPORTS
testInt
add
testString
4. 在 资源管理器->头文件 中新建一个 demo.h 头文件:
#pragma once
extern "C" __declspec(dllexport) int testInt();
extern "C" __declspec(dllexport) int add(int a, int b);
extern "C" __declspec(dllexport) char * testString();
5. 为了得到尽可能小的体积,在 Release 模式下调试项目,报错显示不是有效的 Win32 应用程序,不用管,找到工程目录下 Release 文件夹中生成的 demo.exe,修改其后缀为 .dll 得到 DLL 文件。
二、调用DLL
1. 新建E程序,添加外部DLL引用:
2. 这里注意,因为C++与E默认的约定模式不同,如果命令有参数的话,“在库中对应命令名”一栏前面要加上一个@符号,否则会出现堆栈错误。
3. 调用相关代码,此处添加在窗口创建完毕的事件子程序中:
.版本 2
信息框 (到文本 (testInt ()) + #换行符 + testString () + #换行符 + 到文本 (add (100, 200)), 0, , )
结束 ()
4. 将 demo.dll 放在e程序的同级目录下,或者使用 置DLL装载目录 () 命令将下一次默认调用目录转到dll文件所在目录,随后 F5 调试程序。运行结果如下图:
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Sunwish
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果