実行時に dll を動的にロードし、その dll 内の関数を呼び出す C++ プログラムを作成しています。それは正常に機能していますが、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++ は初めてで、これらが正しい使用方法であるかどうか、また使用する場合はどのように使用すればよいかわかりません。