通过外部"C" ABI公开std::vector<std::string>,可以使用以下步骤:
extern "C" {
void exportVector(const std::vector<std::string>& input, const char*** output, int* size) {
*size = input.size();
*output = new const char*[input.size()];
for (int i = 0; i < input.size(); ++i) {
(*output)[i] = input[i].c_str();
}
}
}
#include <stdio.h>
#include <stdlib.h>
extern void exportVector(const char*** input, int* size);
int main() {
const char** output;
int size;
// 调用导出的函数
exportVector(&output, &size);
// 打印结果
for (int i = 0; i < size; ++i) {
printf("%s\n", output[i]);
}
// 释放内存
free(output);
return 0;
}
这样,通过外部"C" ABI公开std::vector<std::string>的过程就完成了。在实际应用中,可以根据具体需求进行适当的修改和扩展。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云