所以,你把它作为一个字符串类型编组.但是,由于它是out参数(或返回值),因此您需要在C#端使用StringBuilder
class,而不是字符串类型.
P / Invoke语法看起来像这样:
[Dllimport("Mylib.dll")]public static extern voID MyFunction(StringBuilder str);
要使用它,首先要声明具有适当容量的StringBuiler类的实例,然后调用该函数:
StringBuilder myString = new StringBuilder(255);MyFunction(myString);
请记住,非托管C代码必须释放字符串以防止内存泄漏.它是唯一一个可以访问分配字符串的非托管内存区域的人.
总结以上是内存溢出为你收集整理的如何将Wchar_t *从C编组为C#作为out参数或返回值?全部内容,希望文章能够帮你解决如何将Wchar_t *从C编组为C#作为out参数或返回值?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)