MFC 中如何把CString 转换成CV::String
时间: 2023-06-14 20:04:12 浏览: 250
可以使用CString的GetBuffer()函数获取其内部字符数组,然后将其转换成std::string类型,最后再使用cv::String构造函数将其转换成cv::String类型。示例代码如下:
```
CString cstr = "Hello World";
LPCTSTR lpStr = (LPCTSTR)cstr;
std::string stdStr = CT2A(lpStr);
cv::String cvStr(stdStr);
```
需要注意的是,上述代码中使用了CString的GetBuffer()函数获取其内部字符数组,这个函数返回的指针只在调用ReleaseBuffer()函数之前有效,因此需要在转换完成后及时调用CString的ReleaseBuffer()函数释放其内部字符数组。
相关问题
mfc中Cstring怎么转std::string
在MFC中,将CString转换为std::string有两种常见的方法:
方法一:
```cpp
CString cstr = L"hello";
std::wstring ws(cstr);
std::string str(ws.begin(), ws.end());
```
方法二:
```cpp
CString cstr = "hello";
std::string str;
str = CStringA(cstr);
```
这两种方法都可以将CString转换为std::string。方法一首先将CString转换为std::wstring,然后再将std::wstring转换为std::string。方法二直接使用CStringA将CString转换为std::string。
CString 如何转换 cv::String
在 OpenCV 中,可以使用 `cv::String` 类型来表示字符串。要将 `CString` 转换为 `cv::String`,可以使用 `cv::String` 的构造函数将 `CString` 作为参数传递,如下所示:
```cpp
CString cstr = "Hello, OpenCV!";
cv::String cvstr(cstr);
```
此时,`cvstr` 将包含与 `cstr` 相同的字符串。反过来,要将 `cv::String` 转换为 `CString`,可以使用 `cv::String::c_str()` 方法,如下所示:
```cpp
cv::String cvstr = "Hello, OpenCV!";
CString cstr(cvstr.c_str());
```
这将创建一个 `CString`,其值为 `cvstr` 中的字符串。
阅读全文