所以我想使用string class
and multiset template
ofC++.
我的原始代码接口从Python
使用C
,ctypes
现在我正在尝试接口C
到C++
. Python
(如果&之间有任何直接接口C++
,我会欢迎这个建议,但是通过几个 Stack Overflow 和 Stack Exchange 扫描,我发现这种方法更可行。@nm 在评论中提供了解决方案,但我仍然想要了解是否可以将 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 文件。
如果我使用gcc
or编译g++
,它不会编译,而是给出与字符串相关的链接器错误。
compiler ex.c ex.cpp
string 和 multiset 的解决方案是什么?