直接调用会弹出堆栈错误的信息,原因是VS默认是__cdcel方式,而易语言是__stdcall,所以调用约定不一致导致堆栈错误。
解决方案很简单,易语言声明DLL函数时“在库中对应命令名”函数名前加一个“@”符号即可。
简单测试一下:
头文件:
1 #pragma once 2 #include <Windows.h> 3 4 5 extern "C" __declspec(dllexport) int add1(int a, int b);
CPP文件:
1 #include "dll1.h" 2 3 int add1(int a, int b) 4 { 5 return a + b; 6 }
编译后,易语言调用一下子
结果如下,不会弹出堆栈错误了:
个人比较喜欢易语言,因为是我编程入门的语言,更喜欢它的中文编码、简洁、方便,加上各路大佬开源的模块:如精易模块、超级模块,用起来就更加方便了,对我而言不亚于当今很火的Python了。
不知道为啥Python的模块会那么多,如果易语言的开源模块也那么多就更好了,这样的话感觉易语言会在这代年青人程序员迅速火爆中国!
原文地址:https://www.cnblogs.com/biaoge140/p/9170699.html
时间: 2024-10-09 13:34:28