开启左侧

VC++调用C#托管库 参数转换汇总

  [复制链接]
Criss 发表于 2017-1-6 14:43:23 | 显示全部楼层 |阅读模式
经过本人的测试,特此总结如下:
首先添加头文件信息:

  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. using namespace System;
  5. using namespace System::Runtime::InteropServices;
复制代码

1. VC++的CString类型转换C#的System::String类型:

  1. CString strCode = "D";
  2. System::String^ code = gcnew System::String(strCode);
复制代码

2.C#的System::String类型转换VC++的CString类型:

  1. System::String^  s = "D";
  2. const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
复制代码

2.VC++的数组转换C#的数组参数

  1. int value[5]={1,2,3,4,5};
  2. cli::array<int>^ outData = gcnew cli::array<int,1>(5);
  3. for(int i = 0 ; i <5; i++)
  4. {
  5.         outData[i] = value[i];
  6. }
复制代码

halcon学徒 发表于 2017-1-6 15:01:47 | 显示全部楼层
呵呵  楼主谢谢
190378391 发表于 2017-1-6 15:18:38 | 显示全部楼层
学习‘’‘’‘’‘’
allenstin 发表于 2017-1-7 09:40:57 | 显示全部楼层
111111111111111
a445945596 发表于 2017-1-8 12:26:08 | 显示全部楼层
学习一下,看看怎么更方便C#调用C++库
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表