QT学习‘QMessageBox‘ has not been declared 。结构体序列化成hex字符串或字节数组和反过来

#include <QMessageBox>或#include <QtGui>

#include <QMessageBox>
void MainWindow::on_pushButton_clicked()
{
    bool result=false;
    QMessageBox::about(NULL,  "Result",  result?"<font size='40' color='green'>PASS</font>":"<font size='40' color='red'>FAIL</font>");
}
#include "mainwindow.h"
#include <QApplication>
#include "ReadConfigFile.h"

#include <qDebug>
#include <QMessageBox>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    QMessageBox:: StandardButton result= QMessageBox::critical(NULL, "Error", "Try again?",QMessageBox::Yes|QMessageBox::No);
    switch (result)
    {
    case QMessageBox::Yes:
        qDebug()<<"Yes";
        break;
    case QMessageBox::No:
        qDebug()<<"NO";
        break;
    default:
        break;
    }


        //txCmdParam
        double max=10;
        double min=-10;

        const char section[]="Send1";
        char temp_buf[500]={0};
        int ret = ConfigGetKey(config_file, section, "Max", temp_buf);
        if(ret!=0) {       } //error

        memset(temp_buf,0,sizeof(temp_buf));
        ret = ConfigGetKey(config_file, section, "Min", temp_buf);
        if(ret!=0) {        } //error

        memset(temp_buf,0,sizeof(temp_buf));
        ret = ConfigGetKey(config_file, section, "txCmdParam", temp_buf);
        if(ret!=0) {        } //error

        char temp[]="7788899";
        ret = ConfigSetKey(config_file, section, "txCmdParam", temp);
        if(ret!=0) {        } //error




    return a.exec();
}

2为什么明明有实现,还提示

Controller.lib(LtePuschTxV2.obj):-1: error: LNK2019: 无法解析的外部符号 "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl bytesToHexString(unsigned char const *,int)" (?bytesToHexString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBEH@Z),该符号在函数 "public: enum EMetaAppStatusCode __thiscall CLtePuschTxV2::Start(struct ERfTestCmdPuschTxV2 const &)" (?Start@CLtePuschTxV2@@QAE?AW4EMetaAppStatusCode@@ABUERfTestCmdPuschTxV2@@@Z) 中被引用

重构也不行,删除Debug文件夹也不行,可恶! 最后暂时先函数放在一个地方。其它地方用extern

3结构体序列化成hex字符串或字节数组和反过来

qDebug()<< "model_txCmdParam:" << QString::fromStdString(bytesToHexString((BYTE *)&txCmdParam,sizeof(ERfTestCmdPuschTxV2)));
#include <iostream>
typedef struct Test
{
	char name[2];
	int old;
}Test;

int main()
{
	Test t;
	t.old = 1;
	char temp[100] = { 0 };
	memcpy(temp, (char *)&t, sizeof(t)); //保存 ,是取地址后再转成char*
	t.old = 8;
	memcpy( (char *)&t, temp, sizeof(t));//恢复
    std::cout <<" old="<<t.old<<"\n"; //old=1 不是8
	getchar();
	return 0;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄人软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值