上位机开发过程中的一些方法和错误记录

vs添加第三方库

  1. c++ 常规 附加包含目录 添加头文件路径
  2. 链接器 常规 附加库目录 添加lib文件路径
  3. 链接器 输入 附加依赖项 添加lib文件名称
  4. dll 拷贝到exe同目录,或者把dll路径添加到环境变量,或者放在“配置属性 常规 输出目录”的路径中

vs禁用警告

c++ 高级 禁用特定警告

vs发布方式,c++ 代码生成 运行库

  1. /MD 表示不链接VC的运行时库,采用动态库
  2. /MT 表示静态链接
  3. /MDD与/MTD 用于Debug版本

vs C1010 错误信息:cpp文件中未添加预编译头

c++ 预编译头 找到预编译头文件 添加到cpp文件中

修改lib和dll名称

  1. 保持长度与原来一致
  2. 修改lib和dll的名称
  3. lib编辑打开,里面dll名称全部替换
    ./jsoncpp/include
    ./jsoncpp/lib

Qt 中给当前进程添加环境变量,需要在 QGuiApplication 定义之前

qputenv(“QT_IM_MODULE”, QByteArray(“qtvirtualkeyboard”));

Qt 中计算耗时

QElapsedTimer timer;
timer.start();
… do something …
qint64 elapsedTime = timer.elapsed();
qDebug() << “run time: " << elapsedTime << " ms”;

Qt 设置中文编码

  1. main.cpp
#include <QTextCodec>

// 设置编码为UTF-8
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
  1. mainwindow.cpp
#include <QTextCodec>

QTextCodec *codec;

// 设置文本编码为UTF-8
codec = QTextCodec::codecForName("UTF-8");
QString chineseText = codec->toUnicode("中文文本");

Qt6

  1. qt 6.0 中模块合并、移除、重构,3D引擎 6.5 版本与之前不兼容。所以qt版本选择5.15.2或者6.5,6.5之前的6.0版本不建议使用
  2. 商业版 qt on mcu 是第三种qt框架,程序可以跑在单片机上。qml 转 C++
  3. qt on mcu 依赖系统,不同 ARM 架构都可支持
  4. 官网查看信息,qt 6时代,打算在pc上qml转c++,效率更高
  5. qt on android 适配不方便,不再用qt开发安卓
  6. qt 5.6.3 是最后一个GPL授权,后面都是LGPL授权
  7. qt quick designer 已移除
  8. 用鼠标键盘点击的操作,静态界面,可以用widget开发。有手势操作,像素级要求比较高,界面动态元素较多时用qml开发
  9. design studio 可支持其他软件的设计文件导入(photoshop,maya等),插件收费?
  10. design studio 4.2 不支持 qt5,qt 5.15.2 可配 design studio 4.1.1

windows 编译 dlib

参考:https://zhuanlan.zhihu.com/p/67297010

  1. 显式地禁止使用blas,lapack,cuda和mkl依赖
  2. 编译生产dlib.lib
  3. 将 dlib-19.24\output\dlib\config.h 替换 dlib-19.24\dlib\config.h
  4. 调用 dlib 库时报错,error: C2872: “ACCESS_MASK”: 不明确的符号,需要注释 “using namespace cv;”

Win10平板边缘滑动手势大全及开启/关闭方法

  1. 打开注册表编辑器,regedit
  2. 定位到 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
  3. 新建文件夹 EdgeUI
  4. 在 EdgeUI 中新建 DWORD(32位) 值,重命名为 AllowEdgeSwipe
  5. 设置为 0 禁用边缘滑动手势,设置为 1 则启用
  6. 重启电脑生效

windows 设置软件开机自启

把软件的快捷方式拷贝到:C:\Users\DELL\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

设置 TwinCAT 中的变量可以进行ADS通信

  1. 选择 Instance 或者 Obj
  2. 选择 Data Area
  3. 勾选 CS 选项

Qt Creator 经常出现红色下划线,报 semantic issues

帮助 -> 关于插件 -> C++ -> ClangCodeModel 不勾选,重启 Qt Creator

子类继承一个静态库中的基类,子类中无法添加成员变量

子类成员变量导致父类成员变量的偏移量发生变化。在静态库中,类的成员变量的偏移量是固定的。如果子类添加成员变量,则会导致父类成员变量的偏移量发生变化,从而导致程序异常

vs中同一个解决方案下多个项目的构建顺序

可以修改项目生产顺序,添加项目依赖项
在这里插入图片描述

error C1010: 在查找预编译头时遇到意外的文件结尾,是否忘记了向源中添加“#include “stdafx.h””?

在这里插入图片描述

查看 Windows 报错信息

win + x -> 选择事件查看器
可以在 Windows 日志中查看错误信息
在这里插入图片描述

TwinCAT 3 C++/Simulink教程

教程链接

使用 extern 修饰变量,引发LNK2001无法解析的外部符号

extern 修饰变量未做初始化

error C2872: “ACCESS_MASK”: 不明确的符号

注释掉所有的 using namespace cv

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值