摸索了兩天了,終於解決了所有問題,在此跟大家分享。
需要三個檔案,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
4int __stdcall add(int a, intb)5
def檔案:
1library
2exports
3 add @ 1
函式需要宣告為 stdcall呼叫方式才能被易語言呼叫,def檔案的主要作用為解決使用stdcall方式後函式名被改變的問題。在vs2013中引入def檔案需要手動在工程屬性,鏈結器,輸入,模組定義檔案中新增。
真正重要的東西,用眼睛是看不見的。
C 呼叫易語言寫的Dll檔案
分類 c 2011 07 19 22 52 218人閱讀收藏 舉報 本人是用易語言起步的,起初是為了興趣,後來由於易語言被殺軟誤殺嚴重,連空白程式都殺,後來轉到了學c 隨著學習的深入,接觸越來越複雜的東西之後,發現有些功能沒有用易語言來寫方便,所以就想到用c 來呼叫易語言寫的dll,就和一般的dll...
C 呼叫易語言寫的Dll檔案方法
本人是用易語言起步的,起初是為了興趣,後來由於易語言被殺軟誤殺嚴重,連空白程式都殺,後來轉到了學c 隨著學習的深入,接觸越來越複雜的東西之後,發現有些功能沒有用易語言來寫方便,所以就想到用c 來呼叫易語言寫的dll,就和一般的dll呼叫一樣,沒什麼技術含量。易語言中新建個dll檔案 c 中和一般的d...
易語言呼叫C 寫的DLL
直接呼叫會彈出堆疊錯誤的資訊,原因是vs預設是 cdcel方式,而易語言是 stdcall,所以呼叫約定不一致導致堆疊錯誤。解決方案很簡單,易語言宣告dll函式時 在庫中對應命令名 函式名前加乙個 符號即可。簡單測試一下 標頭檔案 1 pragma once 2 include 3 4 5 exte...