gpt4 book ai didi

C++ 将外部函数链接为成员函数

转载 作者:行者123 更新时间:2023-11-30 01:54:52 24 4
gpt4 key购买 nike

基本上,我有一个已经编译好的汇编文件; .obj 文件。它有一个导出函数 f。在 C++ 中,我写了一个类,想使用导出函数 f 作为成员函数。

如果要将其用作全局函数,我知道只需编写extern "C"f()。但是,这不适用于成员函数,至少我不知道该怎么做。

那么,我该怎么做呢?

注意:函数f 写对了。即它考虑了 this 指针等。它应该在汇编级别正常工作。

最佳答案

如果该函数被编写为自由函数,您将必须按照您习惯的方式将其声明为自由函数。正如您无法使用 void foo() 构建一个库,然后以某种方式将其声明为 void bar() 并期望它正常工作一样,您不能采取free 函数并将其转换为成员函数。不过,您可以像这样在您的类中添加一个内联转发器:

struct S;
extern "C" void f( S * );

struct S {
void f() {
using ::f;
f(this);
}
};

据我所知,这是你能做的最好的事情。

关于C++ 将外部函数链接为成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21445541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com