gpt4 book ai didi

c++-cli - 如何将 System::IntPtr 转换为 char*

转载 作者:行者123 更新时间:2023-12-05 08:44:48 25 4
gpt4 key购买 nike

任何人都可以告诉如何在托管 C++ 中将 System::IntPtr 转换为 char*这是我的主要功能

int main(void) 
{
String* strMessage = "Hello world";

CManagedClass* pCManagedClass = new CManagedClass();//working
pCManagedClass->ShowMessage(strMessage);//working


****above said error here***
char* szMessage = (char*)Marshal::StringToHGlobalAnsi(strMessage);
CUnmanagedClass cUnmanagedClass; cUnmanagedClass.ShowMessageBox(szMessage);
Marshal::FreeHGlobal((int)szMessage);

return 0;
}

提前致谢

最佳答案

我不是一个大 C++/CLI 程序员,但下面的代码应该可以正常工作。

IntPtr p = GetTheIntPtr();
char* pChar = reinterpret_cast<char*>(p.ToPointer());

IntPtr 类有一个名为 ToPointer 的方法,它以 void* 类型返回地址。这将在 C++/CLI 中转换为 char*

编辑

已验证这适用于 VS2008 和 VS2015

关于c++-cli - 如何将 System::IntPtr 转换为 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/810354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com