使用内置的c ++类和模板从C调用C ++代码

时间:2018-04-02 08:57:39

标签: c++ extern-c

所以我想使用string class

multiset templateC++.

我的原始代码使用PythonC连接到ctypes,现在我尝试将CC++对接。 (如果PythonC++之间有任何直接接口,我会欢迎这个建议,但扫描了几个Stack Overflow和Stack Exchange,我发现这种方法更可行。 @ n.m在评论中提供了解决方案,但我仍然想知道是否有可能与C& C接口。用于教育目的的C ++)

所以这是一个简单的例子来重现当我尝试与字符串类合并时会发生什么...

ex.c

#include <stdio.h>
#include <stdlib.h>

void cppstr(char *);

void str(char *x) { 
    cppstr(x);                    
}

int main() {
    char *x;
    x = (char *)malloc(sizeof(char)*1024);
    str(x);
    return 0;
}

以上是我的c档。

ex.cpp

#include <string>
#include <cstring>
using namespace std;
extern "C" void cppstr(char *s) {
   string x = "HELLO" + "WORLD";
   strcpy(s, x.c_str());
}

上面是cpp文件。

如果我使用gccg++进行编译,则它不会编译,而是会提供与字符串相关的链接器错误。

 compiler ex.c ex.cpp

string和multiset的解决方案是什么?

0 个答案:

没有答案