Marshal.PtrToStringAnsi转换字符串的问题

twtyypmb123 2016-09-01 03:18:05
如题
string str= "hehe";
IntPtr ip = Marshal.StringToHGlobalAnsi( str );
str = null;
str = Marshal.PtrToStringAnsi( ip );
SendMessage( (IntPtr)( int.Parse( textBox1.Text ) ), msg, ip, 0 );

在本程序里面没问题,但是sendmessage后,在另一个程序里面转换后适中为空字符串,是怎么回事?
...全文
1920 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
twtyypmb123 2016-09-06
  • 打赏
  • 举报
回复
引用 6 楼 crystal_lz 的回复:
windows 每个进程一个独立的内存空间 为的就是安全性防止A崩溃的时候 影响到B程序 所以让每个进程的内存空间独立起来 相互不受影响 A进程的地址 在 B进程里面 并不是同一个东西 然而跨进程访问数据的方式又不是只有sendmessage socket也可以
socket需要一个端口吧?觉得既然都在一个电脑上了,就没必要用网络的东西了
twtyypmb123 2016-09-02
  • 打赏
  • 举报
回复
引用 4 楼 caojinrong 的回复:
SendMessage对于不同msg消息号,其参数wParam和lParam类型是不一样的,你确定搞对了? 还有编码的问题,你确定是多字节编码?
我传递的是地址,应该就和编码没关系了吧?
caojinrong 2016-09-02
  • 打赏
  • 举报
回复
SendMessage对于不同msg消息号,其参数wParam和lParam类型是不一样的,你确定搞对了? 还有编码的问题,你确定是多字节编码?
crystal_lz 2016-09-02
  • 打赏
  • 举报
回复
windows 每个进程一个独立的内存空间 为的就是安全性防止A崩溃的时候 影响到B程序 所以让每个进程的内存空间独立起来 相互不受影响 A进程的地址 在 B进程里面 并不是同一个东西 然而跨进程访问数据的方式又不是只有sendmessage socket也可以
twtyypmb123 2016-09-01
  • 打赏
  • 举报
回复
引用 1 楼 Forty2 的回复:
[quote=引用 楼主 x3230835 的回复:] ...另一个程序...
Ptr类似房间号,在你的大楼内很好使。 另一个程序就是另外一个大楼,你还用原来的房间号,能是同一个房间吗?[/quote]intptr不是指针吗,指针不是内存地址,不能夸程序?
twtyypmb123 2016-09-01
  • 打赏
  • 举报
回复
引用 1 楼 Forty2 的回复:
[quote=引用 楼主 x3230835 的回复:] ...另一个程序...
Ptr类似房间号,在你的大楼内很好使。 另一个程序就是另外一个大楼,你还用原来的房间号,能是同一个房间吗?[/quote]那要怎么传递?
Forty2 2016-09-01
  • 打赏
  • 举报
回复
引用 楼主 x3230835 的回复:
...另一个程序...
Ptr类似房间号,在你的大楼内很好使。 另一个程序就是另外一个大楼,你还用原来的房间号,能是同一个房间吗?

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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