易語言調用C++寫的DLL


直接調用會彈出堆棧錯誤的信息,原因是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的模塊會那么多,如果易語言的開源模塊也那么多就更好了,這樣的話感覺易語言會在這代年青人程序員迅速火爆中國!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM