vs中创建一个dll项目,头文件中写上如下代码:
extern "C" __declspec(dllexport) int Add(int a, int b);
cpp文件中:
int Add(int a, int b)
{return a + b;
}
主程序中main.cpp中:
#pragma once
#include <iostream>
#include <Windows.h>
typedef int (*Add_Func)(int a, int b);
int main()
{HMODULE hDll = LoadLibraryEx(L"Dll2.dll", 0, LOAD_WITH_ALTERED_SEARCH_PATH);std::string funcName = "Add";Add_Func add = (Add_Func)GetProcAddress(hDll, funcName.c_str());if (add = NULL){FreeLibrary(hDll);return false;}int ret = add(3, 4);std::cout << "Hello World!\n";
}
注意:
1.dll中的函数声明必须写上extern “C” __declspec(dllexport),不然找不到该函数
2.dll文件和exe放在同一文件夹下
3.LOAD_WITH_ALTERED_SEARCH_PATH 表示搜索同目录中依赖的其他dll