7,540
社区成员
发帖
与我相关
我的任务
分享
#pragma unmanaged
#include<stdio.h>
#include<stdlib.h>
void print(unsigned char* t)
{
printf((char *)t);
}
#pragma managed
using namespace System;
using namespace System::Runtime::InteropServices;
int main()
{
array<unsigned char>^ sendBuff = gcnew array<unsigned char>(5);
sendBuff[0]=65;
sendBuff[1]=66;
sendBuff[2]=67;
sendBuff[3]=68;
sendBuff[4]=0;
unsigned char* t = (unsigned char*)malloc(sizeof(unsigned char)*5);
IntPtr ptr(t);
Marshal::Copy(sendBuff,0,ptr,5);
print(t);
Console::ReadKey();
}
__inline static std::vector< BYTE > Assign(array< System::Byte > ^ar)
{
if (ar != nullptr && ar->Length > 0)
{
std::vector<BYTE> vt(ar->Length);
pin_ptr<BYTE> ptr = &ar[0];
CopyMemory(&vt[0], ptr, vt.size() * sizeof (vt[0]));
return std::move(vt);
}
else
{
return std::vector< BYTE >();
}
}