C#作为一种高级语言更接近于人的思维,而C++则更理解机器一些。就连平常用惯了的string类型,到了C++里变成了char*,wchar*等等原始的东东。由于平常只用QT这个类似C#对象系统的工具开发程序,主要奉行qt+winapi=一切,其他地都靠边站别阻挡我视线的原则,所以很少接触到纯粹c++的东西,下面把我认为是麻烦事,而C++高手们却视为家常便饭的知识点记录备忘。

1、常量字符串 :

主要是调用WinAPI函数时,有时需要const char*,有时需要const wchar*。

const char* str="this is a string",
const wchar* wstr=L"this is a wide string"//没错加个L就搞定

如果你用的IDE和我一样是QTCreator的话,你会发现:L"中文"时,会出现编译错误--“Illegal byte sequence”。我用的2.2.1版本没发现好的解决方法,只能用笨拙的方法,找到包含中文的.cpp或.h文件--〉用Notepad打开--〉另存为utf-8,就可以正确编译了。

如果是QString变量而不是常量,加“L”就不灵了。这时需要强制类型转换:

const wchar_t *wstr = reinterpret_cast<const wchar_t *>(stitle.utf16());

2、对象为空的判断:

//mainwindow.h中定义的对话框窗体
Dialog* dlg;

//mainwindow.cpp中判断为空,则创建。
if(!dlg){
    dlg=new Dialog();
}
dlg.show();

本来以为这样就行了,结果出错!原因是:dlg指针没有显式初始化为0。

MainWindow::MainWindow():dlgset(0)

3、窗体设计:

a.Dock.Fill Qt中类似winforms的Dock概念是Layout布局 ,QT Creator中隐藏的好深:

4、输出调试信息:

#include <QDebug>
qDebug() << "test";

程序运行时,在“应用程序输出”中可以看到输出信息。

5、对象的销毁:

C++没有垃圾回收,QT使用引用计数来管理对象的是否可以释放。通过delete释放和销毁对象:

delete dlgset; //销毁掉引用DataBase的对象

QSqlDatabase::removeDatabase("qt_sql_default_connection");

//这里就不会有下面的警告了!
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.);

6、如果使用了windows的gdi等dll,需要添加对.lib的引用,才能被正确的连接,不然会有这样的连接错误:

undefined reference to `CreatePen@12

解决方法: 在.pro工程文件中加入下面一行

LIBS += -lgdi32

特别推荐Qt开发的windows小程序实例源代码:

Word双面打印自动确定器
生成的程序全部打包只有4M多,用户解压后可以直接运行。

转载于:https://www.cnblogs.com/hjblog/archive/2012/02/25/2356883.html

用惯C#再用C++的一些麻烦事相关推荐

  1. 从LabVIEW到C++

    前言 最近一段时间一直没有更新,一方面是时间精力的问题(PS:懒癌犯了),另一方面是小黑大部分的时间都在学习C++相关知识,恶补了许多的知识(从大学C语言水平强制拔高了一段). 本文谈谈自己近期的一些 ...

  2. 教你如何在linux 下批量卸载

    教你如何在linux 下批量卸载 最 近本来想在linux 下配置 JDK 6.0 用来开发java,然后遇到很多麻烦,一开始的时候屁颠屁颠的到SUN的网站去下载个 JRE 的bin 文件,这个文件比 ...

  3. 30岁女IT月薪3W的背后:从数据报表到数仓、中台,这工具帮了大忙

    大家可能见过女程序员.女IT工程师,但是我今天要讲的这位,肯定和你们看到的都不一样:一位30岁左右的女IT,为了自己的数据梦想,重构企业数据架构的故事,就以第一人称来说吧. 我毕业快6年了,从事的第一 ...

  4. android11铃声pixel,Android 11 Beta版1发布,谷歌Pixel系列尝鲜,到底是亲儿子

    原标题:Android 11 Beta版1发布,谷歌Pixel系列尝鲜,到底是亲儿子 当鲁sir抱着自己的安卓9手机开开心心的摸鱼时,突然看到一个扎眼的新闻,Android 11 beat版已经发布, ...

  5. 关于VSCode以及DEV-C++在进行网络编程时出现的WS2_32链接问题

    一.示例为<Windows网络与通信程序设计>中getAllIps的示例. 二.在DEV-C++中操作: 菜单栏 -->工具 -->编译选项,设置如下: 其中wsock32是一 ...

  6. beyond-谁伴我闯荡-国语谐音

    [size=large][color=darkblue][b]beyond-谁伴我闯荡粤语歌词谐音[/b][/color][/size] [b]前面是那方 谁伴我闯荡 [/b] 钱面系拉芳 誰半鹅窗荡 ...

  7. 长春BI工具- 长春商业智能- 亿信华辰排第几?

    前几天,领导甩给我一个任务,考察几个BI工具,下季度立项用. 潜心做ETL的我,对BI只是略懂.之前上的BO,由于开发模式不适应.人员用不惯,再加上负责这块的同事走的走,一直被搁置.所以这次目标很明确 ...

  8. js文字无限循环向上滚动

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. android7.0苹果x,谈谈新入手的一加7 Pro,它取代iPhone X成为了我的主力机

    谈谈新入手的一加7 Pro,它取代iPhone X成为了我的主力机 2019-08-29 22:19:47 10点赞 8收藏 35评论 自从2012年入手iPhone 5以后,我就入了苹果的坑,甚至在 ...

最新文章

  1. Educational Codeforces Round 56 Editorial
  2. 如何处理大流量高并发
  3. vivado中交织模块_搞定Markdown中的图片,一劳永逸的方法!
  4. 谐波分析显著性检验matlab,关于谐波检测方法的MATLAB仿真及综合性能分析.pdf
  5. 收获,不止SQL优化——抓住SQL的本质--第七章
  6. PHP 数据库中的模糊查询
  7. 5.PHP ES 使用
  8. php 未定义偏移,错误php未定义的偏移:2-3-4等
  9. 安全计算:AVG免费版提供免费病毒防护
  10. 从B站源码里探索推荐算法的奥义
  11. 三菱modbusRTU通讯实例_PLC编程入门梯形图实例讲解
  12. timesten java_java直接访问Timesten的数据库
  13. Arduino基础学习-SG90舵机的使用
  14. 亲测好用的Topaz AI图像降噪软件:DeNoise AI mac版(支持m1)
  15. Kafka的数据结构与算法
  16. 微信群-街边二维码别乱扫-这些传销陷阱要当心骗局
  17. 【计算机组成原理】 数据的表示和运算
  18. 绘制圆形 和 椭圆形:边圆形 imageellipse() 、 填充圆形imagefilledellipse()
  19. 查看windows系统默认编码 修改windows系统默认编码
  20. 安卓一键清理内存_软件| 安卓系统最强悍微信清理软件,一键将所有垃圾文件搜索出来,还可预览删除...

热门文章

  1. 【转】EventBus 3.0使用详解
  2. Object-C---gt;Swift之(八)类和结构体
  3. 解决phpQuery(DOMDocument)解析部分HTML会产生乱码的问题
  4. HDUOJ------Worm
  5. 【CSS】【9】CSS盒子的浮动
  6. jquery 选择时间(小时)区间(四)
  7. 生活问题 | 对华为畅玩手机5X进行升级
  8. Analyzer tool(MAT)分析JVM内存泄露案例
  9. Windows server 2012 AD架构 试验 系列22 -ADAC与PowerShell History
  10. MySQL中truncate误操作后的数据恢复案例