由于我的数据生成得太快并且内存被覆盖或释放(我已经尝试过指针,并且认为引用会受到类似的影响),因此我无法使用诸如这里或这里的指针。
我已经将Q_DECLARE_METATYPE添加到我的结构体中。我的结构体目前只是一个小测试(稍后将扩大),并位于其自己的头文件中。
#ifndef RETURNSTRUCT_H
#define RETURNSTRUCT_H
struct Datastruct
{
int markeridone;
};
Q_DECLARE_METATYPE(Datastruct);
#endif //RETURNSTRUCT_H
我的程序为什么无法发送/接收结构体?非常感谢任何帮助。
我正在使用Windows 7,MinGW 32位,Qt 5.7.0,Qt Creator 4.0.3
#define
呢?即使在C语言中也是不必要的(你可以使用typedef)!在C++中,你应该使用类型别名:using model_ptr = std::shared_ptr<model>
。只使用别名而不使用基本类型名称也完全可以,只要你在每个地方都保持一致性使用它。 - Kuba hasn't forgotten Monicatypedef
或using
进行别名处理,然后再注册别名。此外,请注意,模板类型末尾的双角括号仅允许在C++11及以上版本中使用。如果您还为其他项目工作,请不要将其变成习惯! - iksemyonov