1. 程式人生 > >易語言調用C++寫的DLL

易語言調用C++寫的DLL

mage clas XP 編程入門 cpp ret 模塊 lsp 錯誤

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

易語言調用C++寫的DLL