c++ - 如何使用未修饰的导出函数在 C++ 中创建 dll
问题描述
每当我在 c++ 中创建 dll 时,导出的函数都会被修饰。我怎样才能获得未修饰的功能。
class Trying{
private:
void xyz();
public:
static __declspec(dllexport) int WriteUserData(int data);
static __declspec(dllexport) string SomeFunction(string data);
}
我只导出两个公共函数WriteUserData
和SomeFunction
. 但是在导出时,我得到了像?WriteUserData@@@@SB@@l
大多数帖子提到的关于使用extern "C"
as 的修饰名称,extern "C"static __declspec(dllexport) int WriteUserData(int data);
但他们在任何函数之外的函数中使用它。我不能把extern "C"
它放在类内的函数之前,因为它给出了错误linkage specification is not allowed
。
解决方案
推荐阅读
- perl - 无法在 GooCanvas 中画线
- javascript - 我试图在 textarea 顶部重叠 pre 标签,但它只是漂浮在其容器的中间
- ocaml - 为什么本地禁用有关部分应用程序的警告似乎不起作用
- css - 2D变换中带有rotateX和rotateY的奇怪动画
- ldap - 如何避免在 Alfresco OpenLDAP 身份验证中提供安全凭证
- angular - 如何在提交新数据之前清除离子存储
- unix - 无法在 unix 中使用 sed 进行匹配和替换
- c++ - 是在 C++ 静态初始化之前还是之后调用 DllGetClassObject
- postgresql - 插入带有存储过程的列列表
- angular - 创建子组件并调用函数。角 5.2.1