1

実行時に 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++ は初めてで、これらが正しい使用方法であるかどうか、また使用する場合はどのように使用すればよいかわかりません。

4

1 に答える 1