C++ 共享库不导出“extern C”函数

问题描述 投票:0回答:1

我正在开发一个共享库并添加一些导出为 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);
};
c++ dll shared-libraries dllexport extern-c
1个回答
0
投票

问题的解决方案很简单: 在源文件中包含带有 extern“C”函数的标头。就我而言,在类的 cpp 文件中。

© www.soinside.com 2019 - 2024. All rights reserved.