系统:windows10
环境:vs2010 + qt5.5.1
1.此项设置包含的头文件,需要填入用到的.h文件目录
2.下图中的qtdir是qt5.5.1安装目录环境变量(默认路径:c:\qt\qt5.5.1\5.5\msvc2010)
1.此项设置引用的lib目录,如下图。
1.此处设置指定的lib文件,一般不用填写。
所有.net对象都需要使用gcnew进行创建,gcnew创建的对象不需要自己手动释放内存。
gtable ^ ret = gcnew gtable();
命名空间用于限定类,不同于c#,这里使用::进行分割。
virtual mynamespace::itable ^ gettable(int index);
qstring marshalstring(string ^ s)
{
using namespace runtime::interopservices;
const char* chars =
(const char*)(marshal::stringtohglobalansi(s)).topointer();
string str = chars;
qstring ret = str.c_str();
marshal::freehglobal(intptr((void*)chars));
return ret;
}
string ^ marshalstringlocal8(qstring os)
{
using namespace runtime::interopservices;
if (os.isnull()) return nullptr;
qbytearray data = os.tolocal8bit();
char * str = new char[data.length() + 1];
strcpy_s(str, data.length() + 1, data.constdata());
string ^ ret = marshal::ptrtostringansi(static_cast<intptr>(str));
delete str;
return ret;
}
string ^ marshalstring(qstring os)
{
using namespace runtime::interopservices;
qbytearray data = os.toutf8();
char * str = new char[data.length() + 1];
strcpy_s(str, data.length() + 1, data.constdata());
string ^ ret = marshal::ptrtostringansi(static_cast<intptr>(str));
delete str;
return ret;
}
string ^ marshalstring(char* os) {
using namespace runtime::interopservices;
string ^ ret = marshal::ptrtostringansi(static_cast<intptr>(os));
return ret;
}
string ^ marshalstring(wchar_t* os) {
using namespace runtime::interopservices;
string ^ ret = marshal::ptrtostringuni((intptr)os);
return ret;
}
using namespace system::runtime::interopservices;
qbytearray bytearray = obj.tobytearray();
int length = bytearray.count();
array<byte> ^ rbytearray = gcnew array<byte>(length + 2);
marshal::copy((intptr)bytearray.data(), rbytearray, 0, length);
ret = rbytearray;
如对本文有疑问, 点击进行留言回复!!
Asp.Net Core 3.1 Web Api 返回数据字段被转换为小驼峰格式的解决办法
已知两点经纬度,计算偏移角(正北为0,顺时针为正,逆时针为负)
解决问题“Could not load file or assembly xxxxxxx or one of its dependencies”
网友评论