的好方法
我的主要程序用C /CLI(托管)编写。我的某些硬件的API包含在.c文件中。从我的主要程序中,我将其称为不受管理的C代码的Main(),该C代码可创建一个数组并与硬件一起使用。完成后,它与硬件断开连接,释放内存,然后返回到C /CLI程序。
什么是访问(复制)从未托管的C代码到托管的C ?
请参阅如何:引脚指针和数组;示例代码是
#include <vector>
#include <algorithm>
#include <msclr/all.h>
using namespace System;
int main(array<System::String ^> ^args)
{
constexpr size_t count = 100;
std::vector<int> unmanged_ints;
for (auto i = 0; i < count; i++)
unmanged_ints.push_back(i);
auto managed_ints = gcnew cli::array<int>(count);
cli::pin_ptr<int> pManaged_ = &managed_ints[0];
int* pManaged = pManaged_;
std::copy(unmanged_ints.cbegin(), unmanged_ints.cend(), pManaged);
return 0;
}