C#如何把DLL的方法返回值LPTSTR变成string

zl_inter 2008-01-08 11:14:11
如题,在我的dll程序有个GetPhone的方法返回是LPTSTR,然后我在C#中调用此方法

[DllImport("InfoDoExt.dll", CharSet = CharSet.Auto)]
public static extern string GetPhone();


随后程序执行下面时
string s = GetPhone();
MessageBox.Show(s); //这里可以屏幕上可以显示

但是DEBUG的时候查看到 s 的值实际是null

可能是GetPhone()方法返回了指针,MessageBox.Show()把指针指向的内容显示出来了,但是 s没有得到值!请问要怎么处理啊???(.NET Compact Framework)



...全文
377 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kpoirtr 2008-01-16
  • 打赏
  • 举报
回复
[DllImport("InfoDoExt.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetPhone();

IntPtr p = GetPhone(); //返回的是指针
string s = Marlsh.PtrToStringAuto(p); //指针转换为string
MessageBox.Show(s);
waterine 2008-01-14
  • 打赏
  • 举报
回复
如果s是null,MessageBox不可能显示正确。是你debug的时候看错了吧...
dandan3797 2008-01-13
  • 打赏
  • 举报
回复
Marlsh里面有相关的方法
wwonion 2008-01-08
  • 打赏
  • 举报
回复
关注一下

7,657

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧