我正在开发一个共享库并添加一些导出为 c 函数的函数,这样我就可以在 C# 中轻松使用它们。但我的 C 函数都没有导出。
根据应用程序 DependencyGUI,我的 C++ 函数已导出,但没有导出我的 C 函数。
我创建了一个测试类来演示我的问题: TEST_API 包含 __declspec(dllimport) 和导出
#pragma once
#include "DLL_Macro.h"
class TEST_API Attempt {
int x;
public:
Attempt(int x);
int adding(int y);
};
extern "C" __declspec(dllexport) void* Create(int x) {
return (void*) new Attempt(x);
};
extern "C" __declspec(dllexport) int AttemptAdd(Attempt * a, int y) {
return a->adding(y);
};
问题的解决方案很简单: 在源文件中包含带有 extern“C”函数的标头。就我而言,在类的 cpp 文件中。