Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有几个想法:
char* test = "testInteger(5).workOnReturn("doIt")[10]"
int ret = execute(test);
如果我使用“extern”关键字会怎样?
假设我有一大堆 C++ 实现和类。难道我不能在 C 中用“extern”定义相同的东西并提供一个虚拟实现,并且在运行时,它会使用实际实现访问 C++ 库吗?
也许您可以自定义您的 GCC 编译器(例如,使用MELT扩展)以某种方式为您的库生成 C 接口(也许通过使用您自己的#pragma-s 注释相关的 C++ 函数 ....)
#pragma
但是您的问题太模糊,无法得到更准确的答案。
你的 C++ 库是什么,它应该如何在 C++ 中使用?
看看其他 C++ 库如何与 C接口;例如查看PPL的源代码
如果你想从 C 中使用 C++,它只能以极其有限的方式完成,并且只要 C++ 代码是为它显式构建的(这意味着基本上放弃了大部分用于 C++ C++ 的东西)。在你的情况下不会发生。
你的出路是只使用 C++ 或为 C 获取一个库。其他任何事情都会造成太大的伤害而没有任何意义。