gsoap 和 qt 转换变量内存句柄
gsoap and qt convert variables memory handle
我使用此代码将 Qstring 转换为 gsoap 标准wchar_t;
wchar_t *MGsoapQtChanger::toGsoap(QString str)
{
s= new wchar_t[str.size()+1];
int i=str.toWCharArray(s);
s[i]=' ';
return s;
}
它对我有好处。 但问题是我做了新的wchar_t并且我没有删除它,因为我需要将其发送给我的客户。 如何在为我的客户端发送此变量后将其删除。
///crunable.cpp///
#include "crunable.h"
CRunable::CRunable()
{
}
void CRunable::run()
{
c->serve();
c->destroy();
delete c;
}
void CRunable::setParam(calcService *c)
{
this->c=c;
}
///convert function///////
wchar_t *MGsoapQtChanger::toGsoap(QString str)
{
s= new wchar_t[str.size()+1];
int i=str.toWCharArray(s);
s[i]=' ';
return s;
}
///listen function//
void MListen::listen()
{
memcService calcS(SOAP_XML_INDENT);
if (calcS.run(80) != SOAP_OK)
calcS.soap_stream_fault(std::cerr);
calcS.destroy(); // same as:soap_destroy(calc.soap);
soap_end(calc.soap);
}
int memcService::uppercase(wchar_t *str, wchar_t *&r){
MGsoapQtChanger mg;
QString s= mg.toQt(str);
s=s.toUpper();
r=mg.toGsoap(s);
return SOAP_OK;
}
一般来说,当你想写new T[]
时,写vector<T>
。除了实现 vector
和 string
等低级容器外,我还没有找到在几年C++使用中不得不使用数组新形式的合法情况。
但是,在这种特殊情况下,您也可以考虑wstring
:
wstring res;
res.resize(str.size());
int i = str.toWCharArray(&s[0]);
res.resize(i);
return res;
相关文章:
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 如何获取边缘窗口句柄 (HWND)?
- 枚举进程模块在有效句柄上返回无效句柄
- 在 c/c++ 中打开 PhysicalDrive 的句柄并写入 MBR 的 linux 等效是什么?
- 从运行服务的应用程序代码中提取窗口句柄
- 在读取文件后重置句柄
- 是否有像地图这样的C++结构,但我得到的不是值的键,而是值的句柄?
- Microsoft ODBC 无法创建有效的句柄
- 我是否可以使用 win32 句柄以编程方式记录发送到/接收到 USB/COM 的内容
- 获取特定进程的句柄数
- C++ 创建 NdisProt 驱动程序的句柄
- 导出 vulkan 内存分配句柄会导致设备内存不足
- 获取进程内存信息失败,错误 6 句柄无效
- 正在从内存中获取文件句柄
- gsoap 和 qt 转换变量内存句柄
- 在QT关闭时从子窗口句柄中删除内存
- 不存储函数返回句柄时的内存管理
- 使用FindFile和文件句柄的c++内存泄漏
- 有哪些工具可以帮助查找句柄的内存泄漏
- 在析构函数中调用CloseHandle会导致运行时内存错误,即如何正确关闭结构/类中的文件句柄