我需要从C ++传递string值到C库。 你如何调用CppCallToC
或.cpp如何访问struct rtmp_stream *stream;
?
C ++文件:UI / window-basic-main.cpp:
void OBSBasic::Load(const char *file) { //From C++ how to go to the C method? CppCallToC(); }
C文件:plugin / obs-outputs / rtmp-stream.c:
static void CppCallToC() { //https://github.com/jp9000/obs-studio/blob/master/libobs/util/dstr.h //struct dstr path, key; struct rtmp_stream *stream; //dstr_printf(&stream->path, obs_path); //dstr_printf(&stream->key, obs_key); }
你的问题不是C vs C ++的问题。 rtmp-stream.c中的所有函数都声明为静态的,这意味着它们具有内部链接,不能从不同的编译单元调用。 您只能通过文件末尾定义的rtmp_output_info结构间接访问这些函数,并在obs-outputs.c中声明,甚至该声明仅在该文件中可用。
我对OBS Studio一无所知,所以恐怕我再也帮不了你了。 您将不得不跟踪obs_register_output(&rtmp_output_info)
发生的情况。