从system :: String转换为std :: string

从system :: String转换为std :: string,第1张

概述从system :: String转换为std :: string

从system :: String转换为std :: string,我使用下面的代码:

IntPtr p = Marshal::StringToHGlobalAnsi(PORT); string newString = static_cast<char*>(p.topointer()); Marshal::FreeHGlobal(p);

但是,我得到的代码使用的地方

IntPtr p = Marshal::StringToHGlobalAnsi(PORT); char* newString = static_cast<char*>(p.topointer()); Marshal::FreeHGlobal(p);

由于某些原因,我得到垃圾在newString如果我做char *版本。 任何人都知道为什么会发生?

谢谢。

如何从.NET客户端应用程序加载URL

如何使用WinAPI读取MessageBox文本

有没有任何方法来调用一个Cortana响应没有用户input?

如何使用fsharpi(fsi)和mono的stdinpipe道

使用.NET监视windows 7中的声卡输出

在附加到NotifyIcon的ContextMenu中延迟单击事件

如何创build无限的canvas效果?

我有什么select使用C#在windows Server上添加和删除IPSec策略?

在windows应用程序中是否有任何基于SSRS的商业产品可以提供更丰富的用户体验?

我们可以从共享path运行batch file(.bat)吗?

std::string版本的工作原因是因为它立即创建char*值的私人拷贝。 这个私人副本不受后来的FreeHGlobal影响。

char*版本被分配一个指向内存的指针,然后在下一行释放它。 FreeHGlobal命令执行的时候是无效的。

总结

以上是内存溢出为你收集整理的从system :: String转换为std :: string全部内容,希望文章能够帮你解决从system :: String转换为std :: string所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1287134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存