C#调用C++ DLL问题记录
最近做一个将C++框架的OpenH323功能接口封装成供C#调用的动态链接库的工作,由于本人基本属于C++白痴,故封装过程中遇到诸多问题。多谢同事、头已经网上各位大牛的帮助,遇到的问题终归能够找到解决方法。为了避免以后再遇到同样的问题不从下手,且供未知如我般C++新手参考,记录如下;
一、C++的字符集
C++工程->属性->配置属性->常规->字符集有三个选项:未设置、使用Unicode字符集、使用多字节字符集。一般为了程序的移植和通用性,选择第二种,因为Unicode字符集是双字节字符集,包含世界各个国家绝大部分字符。可以使程序在多语言环境下运行而不出现乱码。
选择使用Unicode字符集,C++项目中就要注意有些单字节类型与双字节类型的转换问题。
有关字符集的知识,可以参考http://www.cnblogs.com/yedaoq/archive/2010/09/14/1825840.html
二、C++ DLL 返回字符串数组
最初是想提供一个返回字符串数组的接口使得C#能够得到这个值。C#如何获得这个值呢?最好的方法是用引用传参,可是