编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

界面工厂编程视频教程广告联系qq1031180668广告位
查看: 34|回复: 0

[易语言] 易语言调用C++写的DLL堆栈问题

[复制链接]
  • ta_mind

    5 天前
  • classn_01: 68 classn_02

    [LV.6]常住居民II

    884

    主题

    1604

    帖子

    3106

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    3106

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    发表于 7 天前 | 显示全部楼层 |阅读模式
    直接调用会弹出堆栈错误的信息,原因是VS默认是__cdcel方式,而易语言是__stdcall,所以调用约定不一致导致堆栈错误。
    解决方案很简单,易语言声明DLL函数时“在库中对应命令名”函数名前加一个“@”符号即可。

    头文件:
    [C++] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    #pragma once
    #include <Windows.h>
    
    extern "C" __declspec(dllexport) int add1(int a, int b);
    cpp文件:
    [C++] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    #include "dll1.h"
    
    int add1(int a, int b)
    {
        return a + b;
    }

    像这样编译的dll易语言去调用就不会出错了。



    不积跬步,无以至千里
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|Archiver|小黑屋|sitemap|编程论坛 - 一个单纯的编程学习交流论坛 ( 豫ICP备15032706号 )

    GMT+8, 2018-6-19 16:38 , Processed in 0.078125 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表