C# 调用delphi dll问题 pchar 返回乱码

4.读取返回结果dll库functionComPortRead(Port:Integer;varSize:Word;Timeout:Cardinal):PChar;std... 4.读取返回结果 dll库
function ComPortRead(Port: Integer; var Size: Word; Timeout: Cardinal): PChar; stdcall; external 'ComPortDll.dll';
//读取返回值C#
[DllImport("ComPortDll.dll", EntryPoint = "ComPortRead", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = false)]//, CallingConvention = CallingConvention.Cdecl)]
public static extern string ComPortRead(int port, ref short Size, uint Timeout);
得到值为一个字符,应该是一个长字符串
展开
 我来答
cnsuyong
2014-10-31 · TA获得超过1075个赞
知道小有建树答主
回答量:767
采纳率:100%
帮助的人:432万
展开全部
你把类型搞错了,根据你的代码,你在 C# 中得到的是一个指针,你需要用返回的 Size 配合指针,把 PChar 的内容拷贝到一个 string 变量中,然后作为结果返回给 C# 的 函数。
在 Delphi 中,PChar 是指针类型, 表示一个地址。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式