摸索了兩天了,終於解決了所有問題,在此跟大家分享。
需要三個文件,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 4 int __stdcall Add(int a, int b) 5 { 6 return (a + b); 7 }
def文件:
1 LIBRARY 2 EXPORTS 3 Add @ 1
函數需要聲明為 stdcall調用方式才能被易語言調用,def文件的主要作用為解決使用stdcall方式后函數名被改變的問題。在vs2013中引入def文件需要手動在工程屬性,鏈接器,輸入,模塊定義文件中添加。