在我的C#应用程序中,我从C ++ DLL向量中获取,并且运行良好,但是随后我不得不将向量从C#应用程序发送至C ++ DLL,我不知道该怎么做。
你有什么主意吗?
答案 0 :(得分:-2)
您可以传递指针,这可能就是我要做的:
void PassToCpp(){
List<string> MyStringList = {"hello", "world"};
cpp_function(&MyStringList[0], MyStringList.Count);
}
将是C#代码
void cpp_function(const char* ptr, size_t count) {
std::vector<std::string> my_vector;
my_vector.reserve(count);
std::copy(ptr, ptr + count, my_vector.begin());
// go nuts here
}
请记住,我本人实际上并没有做过类似的事情,但是我可能只是传递一个指针,这似乎是一件微不足道的任务,两种语言都支持它。
编辑:更新了代码,因为实际上您无法使用托管内存来做到这一点