gpt4 book ai didi

string - 需要将String ^转换为char *

转载 作者:行者123 更新时间:2023-12-04 01:39:00 25 4
gpt4 key购买 nike

我正在使用.NET DateTime获取当前日期和时间。我将其转换为字符串,以用作文件名的一部分。问题是保存图像的OpenCV命令需要一个char *而不是字符串类型,并且DateTime将仅输出String ^类型。我该如何工作?继承人代码未完成

String^ nowString = DateTime::Now.ToString("yyyy-MM-dd-HH:mm");
IplImage* toSave;
CvCapture* capture = cvCreateCameraCapture(0);
toSave = cvQueryFrame( capture );
cvSaveImage(nowString, toSave);
cvReleaseImage(&toSave);
cvReleaseCapture(&capture);

最佳答案

最好的选择是使用StringToHGlobalAnsi。这是完整的代码,显示了它是如何完成的,并记住释放分配的内存。

using namespace System::Runtime::InteropServices;

void MethodName()
{
String^ nowString = DateTime::Now.ToString("yyyy-MM-dd-HH:mm");
IntPtr ptrToNativeString = Marshal::StringToHGlobalAnsi(nowString);
try
{
CvCapture* capture = cvCreateCameraCapture(0);
IplImage* toSave = cvQueryFrame(capture);
cvSaveImage(static_cast<char*>(ptrToNativeString.ToPointer()), toSave);
cvReleaseImage(&toSave);
cvReleaseCapture(&capture);
}
catch (...)
{
Marshal::FreeHGlobal(ptrToNativeString);
throw;
}
Marshal::FreeHGlobal(ptrToNativeString);
}

您可能需要重新考虑在文件名中使用':'字符,因为我认为Windows不太喜欢这种方式。

关于string - 需要将String ^转换为char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2178023/

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