【发布时间】:2020-08-26 21:46:41
【问题描述】:
我正在编写一个 C++ 程序,它在运行时动态加载一个 dll 并在该 dll 中调用一个函数。 那工作正常,但现在我想从 dll 中调用我的 C++ 程序中定义的函数。
我的 main.cpp 看起来像这样:
#include <Windows.h>
#include <iostream>
typedef void(*callC)(int);
int main()
{
HINSTANCE dllHandle = LoadLibrary("D:\Libraries\lib.dll");
callC func = (callC)GetProcAddress(dllHandle, "callC");
func(42);
FreeLibrary(dllHandle);
}
// I want to call this function from my dll
void callableFromDll(){
}
被访问的dll部分是用C写的,如下所示:
#include <stdio.h>
void callC(int);
void callC(int i){
print(i);
// Call the C++ function
//callableFromDll();
}
我已经阅读了有关 __declspec(dllimport) 和 __declspec(dllexport) 属性的信息,但我对 C++ 非常陌生,不确定这些是否适合使用,如果适合,如何使用它们。
【问题讨论】: