专栏首页Java爬坑系列C++ 编写DLL文件给易语言调用

C++ 编写DLL文件给易语言调用

  摸索了两天了,终于解决了所有问题,在此跟大家分享。

  需要三个文件,dll_demo.h、dll_demo.cpp、dll_dome.def

  直接上代码:

  头文件如下:

1 #ifndef _DLL_DEMO_H_
2 #define _DLL_DEMO_H_
3 #ifdef DLLDEMO_EXPORTS
4 #define DLL_DEMO extern "C" __declspec(dllexport) 
5 #else
6 #define DLL_DEMO extern "C" __declspec(dllimport)
7 #endif
8 DLL_DEMO int __stdcall Add(int a, int b);
9 #endif

  源文件:

1 #define DLLDEMO_EXPORTS
2 #include "dll_demo.h"
3 
4 int __stdcall Add(int a, int b)
5 {
6     return (a + b);
7 }

  def文件:

1 LIBRARY
2 EXPORTS
3 Add @ 1

  函数需要声明为 stdcall调用方式才能被易语言调用,def文件的主要作用为解决使用stdcall方式后函数名被改变的问题。在vs2013中引入def文件需要手动在工程属性,链接器,输入,模块定义文件中添加。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C语言dll文件的说明以及生成、使用方法

      最近在搞一些小项目,由于要涉及到跟其它语言进行交互,动态链接库变成了不二的选择。为此也查阅了很多资料,将动态链接库的相关知识在此做一个整理。 一、动态链接...

    弗兰克的猫
  • 【LeetCode】无重复字符串最长子串

    这道题的目标是找出最长子串,并且该子串必须不包含重复字符,而且这个子串必须是原字符串中连续的一部分(见示例3中的解释说明)。

    弗兰克的猫
  • 【Java入门提高篇】Day22 Java容器类详解(五)HashMap源码分析(上)

    准备了很长时间,终于理清了思路,鼓起勇气,开始介绍本篇的主角——HashMap。说实话,这家伙能说的内容太多了,要是像前面ArrayList那样翻译一下源码,稍...

    弗兰克的猫
  • 【案例】CSS3斜线条动态背景动画特效

    今天段老师给同学们带来的是一款简洁的网页文字背景代码。基于CSS3斜线条动态背景动画特效。

    用户1730674
  • cf1064E. Dwarves, Hats and Extrasensory Abilities(二分 交互)

    \(n\)次操作,每次你给出一个点的坐标,系统会返回该点的颜色(黑 / 白),程序最后输出一条直线把所有黑点和白点分隔开

    attack
  • PHP7标量类型声明RFC

    一、总结 该RFC建议添加4种新的标量类型声明:int,float,string和bool,这些类型声明将会和PHP原来的机制保持一致的用法。RFC 更推荐给每...

    wangxl
  • 关于解决”要执行请求的操作,WordPress需要访问您网页服务器的权限”

    比如我们在VPS主机中创建WordPress站点的时候,会有需要在线安装主题、插件等,但是点击下载安装的时候会有”要执行请求的操作,WordPress需要访问您...

    十四君
  • 使用Eclipse调试PHP应用

    Change Apache server default port 80 to another port:

    Jerry Wang
  • 解决python 缺少 'python.

    greenlet.h:8:20: 致命错误: Python.h:没有那个文件或目录

    py3study
  • Apache-Flink深度解析-JOIN-LATERAL

    本篇介绍一个特殊的JOIN,那就是JOIN LATERAL。JOIN LATERAL为什么特殊呢,直观说因为JOIN的右边不是一个实际的物理表,而是一个VIEW...

    王知无

扫码关注云+社区

领取腾讯云代金券