gpt4 book ai didi

c++ - 从 C++ 如何执行 C 中的方法或访问结构?

转载 作者:太空狗 更新时间:2023-10-29 11:35:41 26 4
gpt4 key购买 nike

我需要将字符串值从 C++ 传递到 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 与 C++ 的问题。 rtmp-stream.c 中的所有函数都声明为静态的,这意味着它们具有内部链接并且不能从不同的编译单元调用。您只能通过文件末尾定义并在 obs-outputs.c 中声明的 rtmp_output_info 结构间接访问这些函数。 ,甚至该声明也仅在该文件中可用。

我对 OBS Studio 一无所知,所以我恐怕无法为您提供更多帮助。您必须追踪 obs_register_output(&rtmp_output_info) 中发生的事情。

关于c++ - 从 C++ 如何执行 C 中的方法或访问结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43651673/

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