有没有一种简单的方法直接从C使用C++对象?我想将一些类从C++暴露给C或FFI(外部函数接口).当然,我可以写一些这样的东西:
class Foo{
....
};
void *make_foo(...){
Foo *ptr = new Foo(..)
return static_cast<void *>(ptr);
}
..
int *foo_method1(void *fooptr, ...){
Foo *ptr = static_cast<Foo*>(fooptr);
}
Run Code Online (Sandbox Code Playgroud)
但是有一种更简单的方法吗?
你快到了.使用独立函数前缀extern "C"来关闭C++编译器的名称修改.
例如:
extern "C" void *make_foo(...){
Foo *ptr = new Foo(..)
return static_cast<void *>(ptr);
}
Run Code Online (Sandbox Code Playgroud)