修复 C++ 中损坏的导出名称
fix Mangled Export names in C++
我是 C++ 的新手,想编写一个带有一些导出的 DLL,但在编译时我得到了错误的名称。我现在知道,为了解决这个问题,我应该在声明前添加 extern "C"
,但这仍然不起作用。
我的代码
#pragma once
#include <iostream>
#include <windows.h>
using namespace std;
#ifdef FXSST_EXPORTS
#define FXSST_API __declspec(dllexport)
#else
#define FXSST_API __declspec(dllimport)
#endif
extern "C" FXSST_API void Hello(void);
FXSST_API void Hello(void)
{
cout << "Hello World" << endl;
}
出于个人原因(并使我自己更容易),如果可能,我想将所有内容保存在一个 .cpp
文件中。
谢谢 ;)
最简单的方法是设置您的 DLL 项目以创建一个导入库 (.lib),其中包含声明您的 class 的 header (.h) 文件。然后将 .lib 添加到使用 DLL 的项目中的 link 库,并在需要使用 class 的地方#include your header。
我是 C++ 的新手,想编写一个带有一些导出的 DLL,但在编译时我得到了错误的名称。我现在知道,为了解决这个问题,我应该在声明前添加 extern "C"
,但这仍然不起作用。
我的代码
#pragma once
#include <iostream>
#include <windows.h>
using namespace std;
#ifdef FXSST_EXPORTS
#define FXSST_API __declspec(dllexport)
#else
#define FXSST_API __declspec(dllimport)
#endif
extern "C" FXSST_API void Hello(void);
FXSST_API void Hello(void)
{
cout << "Hello World" << endl;
}
出于个人原因(并使我自己更容易),如果可能,我想将所有内容保存在一个 .cpp
文件中。
谢谢 ;)
最简单的方法是设置您的 DLL 项目以创建一个导入库 (.lib),其中包含声明您的 class 的 header (.h) 文件。然后将 .lib 添加到使用 DLL 的项目中的 link 库,并在需要使用 class 的地方#include your header。