由于项目需要,被迫在C++中通过托管方式调用C#的类库,本来调用也很简单,但是由于C#中的数据类型和C++是不一样的,所以处理起来就比较麻烦,这不,我自己就为了理顺这个数据类型,花了好几天时间。
C#类库代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StringDll
{
public class Class1
{
public int GetString(out string strRet)
{
strRet = "120,;,0;133,1;142,0;150";
return strRet.Length;
}
public static int DataRead(int m_TableType, ref byte[] m_InData, int m_InLen, ref byte[] m_OutData, ref int m_OutLen)
{
m_OutData = Encoding.Unicode.GetBytes("abc严峻");
string str = Encoding.Unicode.GetString(m_OutData);
return 0;
}
}
}
这部分代码加入到C++中后,查看函数原型的时候就发生了变化,第一个函数就变成了