C#学习教程:将char指针从C#传递给c ++函数分享


将char指针从C#传递给c ++函数

我被困在c#实现方面,因为我对它很陌生。 问题是,我想从c#代码传递一个’指针’(有内存),这样我的c ++应用程序就可以将pchListSoftwares缓冲区复制到pchInstalledSoftwares。 我无法弄清楚如何从c#侧传递指针。

本机c ++代码(MyNativeC ++ DLL.dll)

void GetInstalledSoftwares(char* pchInstalledSoftwares){ char* pchListSoftwares = NULL; ..... ..... pchListSoftwares = (char*) malloc(255); /* code to fill pchListSoftwares buffer*/ memcpy(pchInstalledSoftwares, pchListSoftwares, 255); free(pchListSoftwares ); } 

传递简单的’字符串’不起作用……

C#实现

 [DllImport("MyNativeC++DLL.dll")] private static extern int GetInstalledSoftwares(string pchInstalledSoftwares); static void Main(string[] args) { ......... ......... string b = ""; GetInstalledSoftwares(0, b); MessageBox.Show(b.ToString()); } 

非常感谢任何forms的帮助……

尝试使用StringBuilder

 [DllImport("MyNativeC++DLL.dll")] private static extern int GetInstalledSoftwares(StringBuilder pchInstalledSoftwares); static void Main(string[] args) { ......... ......... StringBuilder b = new StringBuilder(255); GetInstalledSoftwares(0, b); MessageBox.Show(b.ToString()); } 

我的错误…在调用GetInstalledSoftwares(0, b);删除0 GetInstalledSoftwares(0, b);

尝试将原型行更改为:

 private static extern int GetInstalledSoftwares(ref string pchInstalledSoftwares); 

(通过引用发送字符串)。

上述就是C#学习教程:将char指针从C#传递给c ++函数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031762.html

发表评论

邮箱地址不会被公开。 必填项已用*标注