1.为了能找到dll的函数地址,生成dll时需要将其中的函数声明为C函数(extern "C"):
#ifndef __MYDLL_H#define __MYDLL_H#ifdef MYDLL_EXPORTS#define MYDLL __declspec(dllexport)#else#define MYDLL __declspec(dllimport)#endifextern "C" MYDLL int Add(int a, int b);#endif 2.调用dll中的函数时,只需要*dll文件,不需要.h和.lib#include#include #include int main(){ HINSTANCE handle = LoadLibrary("DLL_07.dll"); if (handle) { //定义要找的函数原型 typedef int (*DLL_FUNC_ADD) (int,int); //找到目标函数的地址 DLL_FUNC_ADD dll_func_add = (DLL_FUNC_ADD)GetProcAddress(handle,"Add"); if (dll_func_add) { //调用该函数 int result = dll_func_add(10,11); printf("result:%d\n",result); } //卸载 FreeLibrary(handle); } return 0;}
3.调用dll的项目属性->常规->字符集->使用多字节字符集。
Demo:百度云盘(13207134391)
DLL_07
DLL_07_APP