C/C++
文章平均质量分 87
dbzhang800
简单单单,平平淡淡,喜欢计算机,喜欢钻牛角尖,喜欢刨根问底,... 喜欢开源的东西,其次是免费的东西...
展开
-
QString乱谈(2)
长期以来,很多人都清楚,一旦C++源码中直接使用了中文,这样的源码想要跨平台(I18N)会非常困难。随着:Windows下:MSVC2010成为主流Linux下:GCC升级到4.6C++中的中文问题 才算有了一个比较优雅的、跨平台的Workaround。(本文讨论编译器范围:GCC4.6+, MSVC2010sp1+ 。本文属于QString系列,但暂不涉及QString)原创 2012-05-07 03:02:23 · 30154 阅读 · 24 评论 -
C++程序如何获得自身路径(Qt源码)
考虑一下:将 Python 嵌入的到 C++ 中,编译出一个可执行程序并将 Python 的文件(.py, .so, .pyd,等)放到可执行程序所在目录的某个子目录那么,嵌入的Python如何找到这些文件呢?需要知道可执行程序自身路径,可是,C、C++ 标准库没原创 2011-08-14 09:28:50 · 7596 阅读 · 3 评论 -
表达式模板 (C++学习)
Qt从4.6开始,引入了一个QStringBuilder的内部类在QString的Manual中,你可以找到关于它的简单介绍在 String concatenation with QStringBuilder有详细介绍这个类主要使用了一个被称为表达式模原创 2011-08-17 00:53:16 · 7748 阅读 · 7 评论 -
C++小问题3则
问题1有网友问这样一个问题:Is there any way to use QString as a parameter in switch case as shown below.QString str;switch(str){ case "A":原创 2011-09-10 23:51:13 · 2485 阅读 · 1 评论 -
Qt5 路线?
从 Qt 官方刚发布的blog Thoughts about Qt 5我们可以了解到下一版 Qt 的动向。愿景Qt 5.0 will be the foundation for a new way of developing applications. While o原创 2011-05-10 22:05:00 · 8781 阅读 · 2 评论 -
信号与槽的新语法(Qt5)
在 Qt5 的 qtbase-staging 代码仓库的 qobject_connect_ptr 分支中已经引入了一种全新的信号与槽的语法。参看 New Signal Slot Syntax Possibly Coming in Qt 5 一文。新老语法如果我们将一个QSlider对象的valueChanged信号链接到一个QSpinBox对象的setValue槽,使用原创 2011-06-15 22:05:00 · 29409 阅读 · 13 评论 -
QTextCodec相关的new、delete问题一则
在 Qt之QTextCodec乱谈 一文中我们提到这个一样例子int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QTextCodec * codec = new Dbzha原创 2011-07-19 00:03:22 · 4122 阅读 · 4 评论 -
[Python源码学习]之PyObject和PyTypeObject
Python C api中的绝大多数函数其参数和返回值中包含 PyObject*。这指针类型指向一个可以表示任何Python对象的不透明的数据结构。所有的Python对象在多数情况下以相同的方式对待。所有的Python对象(甚至是Python的整数)都包含一个类型和引用计数。原创 2011-08-13 12:26:40 · 11515 阅读 · 0 评论 -
QSettings、QApplication相关的 BUG 一例
问题重现看看下面这个简单的程序,能猜出会发生什么问题么?#include #include #include class A:public QObject{public: A(QObject *parent):QObject(parent){}原创 2011-08-11 18:28:29 · 2955 阅读 · 0 评论 -
typeid 与 dynamic_cast(C++学习)
RTTIRun-Time Type Information运行时类型信息Run-Time Type Identification运行时类型识别C++ 通过下面两个 操作符 提供原创 2011-08-09 15:04:14 · 6918 阅读 · 1 评论 -
Windows 资源文件(.rc文件)小记
在windows下使用Qt时,通常会用到Windows的资源文件(给exe设置图标和版本信息等),比如命名为 main.rc#include "winver.h"IDI_ICON1 ICON "main.ico"IDI_ICON2原创 2011-08-08 18:36:05 · 10813 阅读 · 1 评论 -
表达式左值右值(C++学习)
左值右值是表达式的属性,该属性称为 value category。按该属性分类,每一个表达式属于下列之一:lvalueleft value,传统意义上的左值xvalueexpiring val原创 2011-08-05 15:31:43 · 6996 阅读 · 4 评论 -
C、C++中的字符与字符串(点滴记录)
C/C++ 中的字符类型:signed char有符号字符 unsigned char无符号字符 char根据实现,可以是无符号活有符号 wchar_t宽字符C95char16_tUTF-16字符原创 2011-06-06 10:51:00 · 5886 阅读 · 0 评论 -
正则表达式使用学习(C++、Qt、Python)
写在前面个人对于正则表达式实在是不太了解,所以本文内容纰漏应该会比较多。只希望不会对大家造成误导。本文只是简单涉及C++0x、Qt4、Python3、Vim中的正则表达式:C++0x :在 regexp 头文件中提供一系列模板类Qt4 :中原创 2011-08-20 11:39:16 · 8178 阅读 · 0 评论 -
动态库的搜索路径
简单整理一下,备忘;只关注Linux和Windows,其他情况不了解。dbzhang800 20110617WindowsWindows下动态的库的搜索顺序,MSDN Dynamic-Link Library Search Order 中有详细的介绍。我们此处只关注比较正统的搜索顺序:包含可执行文件的目录Windows的系统目录 (该目录可通过GetSystemDirector原创 2011-06-17 00:52:00 · 7358 阅读 · 0 评论 -
动态库加载路径之RPATH与RUNPATH(小记)
考虑翻译Qt官方blog中的RPATH and RUNPATH这篇文章,在继续之前,我需要先验证自己的理解是正确的,至少能自圆其说,能说服自己。用例子说话 二进制对应源码有一个程序a.outmain.c需要加载插件AlibA原创 2011-10-30 11:31:19 · 23529 阅读 · 8 评论 -
C、C++时间与日期函数
由于自己实际工作学习中没怎么用时间和日期的函数,在看Unix环境高级编程6.10节和Python的time模块时,总感觉这些东西总是连不成串。还是从C开始理一理吧。翻翻C标准(C++中的东西我看不懂),相关的也就是time.h这个东西了。宏NULL CLOCKS_PER_SEC类型size_t clock_原创 2011-10-21 23:17:24 · 6387 阅读 · 2 评论 -
++i在C、C++中是不是左值?
前些天写blog左值与右值(C++学习)时,已经确认在C++中,++i 是左值。可是,今天在newsmth的C语言版上看到一个相关的问题。发现在C语言中,++i不是左值。例子一个很简单的例子:int main(){ int i = 0;原创 2011-08-28 23:11:46 · 4385 阅读 · 1 评论 -
C/C++ Strict Alias相关的问题(实例)
接前面C/Cpp strict alias小结,看一些与此相关的例子:例子一测试环境:gcc-4.4(ubuntu x86),gcc-4.4(mingw32)结果:编译用命令及选项结果原创 2011-08-27 00:03:53 · 3477 阅读 · 0 评论 -
C/C++ Strict Alias 小记
什么是Aliasing?理解strict aliasing一文中这样描述:当两个指针指向同一块区域或对象时,我们称一个指针 alias 另一个指针。strict aliasing一文中这样描述:Aliasing 是指多于一个的左值指向同原创 2011-08-25 23:30:26 · 17853 阅读 · 3 评论 -
Qt 多线程之 std::thread (一)
不时见到有人会这样做:不使用QThread,而是使用pthread等平台相关的底层 api而又不想使用底层线程间同步、通讯的api那么,如何使用pthread,而又使用Qt提供的线程间机制呢?本文的初衷源于此,但是使用的的是C++0x 的 std::thread,原创 2011-07-08 11:28:56 · 12796 阅读 · 4 评论 -
X86汇编学习小结
本文起源:想看看C/C++中的Strict Aliasing,可是找到的资料几乎都用C/C++对应的汇编代码来解释一些概念。看不懂这些汇编,只好先简单整理一点汇编相关的资料了。找几个编译器,找个最最简单的C程序,动手试试,于是...生成汇编代码比如,一个简单的原创 2011-08-25 00:03:17 · 3713 阅读 · 0 评论 -
乱谈Qt程序之i18n的实现(从C++到Qt)
嘿嘿,本文只是试图从纯C++的角度告诉你 Qt 的国际化是到底是怎么一回事(注:本文只看一个点,不看面)。而不会一步一步告诉你Qt的国际化/本地化怎么用(这些东西在Qt Manual、论坛 以及 相关书籍中介绍的够多了)。Qt 国际化所做的就是这点东西:首先,提取要翻原创 2011-08-22 20:22:50 · 9087 阅读 · 8 评论 -
C++ ABI之名字改编(以Qt为例)
在C++中,由于重载等技术的存在,编译器要将函数、结构体、类等等的信息传递给链接器,就不能像C语言那样简单地通过函数名来完成,它需要提供额外的参数信息,而还要和C语言共用链接器,这就需要用到名字改编(name mangling),又叫名字修饰(name decoration)。原创 2011-08-21 23:12:50 · 6099 阅读 · 1 评论 -
wchar_t内置还是别名?小问题一则
接前一篇C++ ABI之名字改编(以Qt为例),继续看看C++名字改编相关的问题。问题MSVC 有一对选项/Zc:wchar_t- 与 /Zc:wchar_t控制wchar_t于是 wchar_t 可以是 unsigned short原创 2011-08-22 00:29:30 · 6155 阅读 · 0 评论 -
隐式类型转换(C++学习)
隐式转换发生条件在混合类型表达式中,操作数被转换成相同的类型用作 if 语句或循环语句的条件时,被转换为bool类型用于switch语句时,转为整数类型用来初始化某个变量(包括函数实参、return语句),转为变量的类型隐式转换分类标准转换序列 (原创 2011-08-04 17:17:42 · 4012 阅读 · 1 评论 -
1+1=2的 blog 文章索引
本blog太乱了?文章相互之间没有关联?,那么从本文开始可能是比较好的^_^。主要内容:本 blog 中和之前发布在其他 blog 中文章的索引。原创 2011-04-03 23:50:00 · 27931 阅读 · 35 评论 -
QEvent 子类化一例
自定义一个QEvent应该很简单:class CustomEvent : public QEvent{public: CustomEvent() : QEvent(static_cast(User+1)) { }};不过传给父类的Type参数似乎有点原创 2011-07-28 23:49:15 · 4505 阅读 · 1 评论 -
从 相对路径 说开来(从C++到Qt)
在Qt论坛经常看到网友抱怨: QPixmap("dbzhang800.png") 加载图片不成功; QFile("dbzhang800.txt") 打开文件失败;原创 2011-04-26 07:58:00 · 38693 阅读 · 36 评论 -
Qt源码学习(从Win32到Qt)
Qt源码学习:一个Win32的门外汉,以自己的角度,去看到Qt中windows事件相关的代码。原创 2011-04-28 18:11:00 · 12109 阅读 · 3 评论 -
Qt Windows下链接子系统与入口函数(终结版)
能力所限,本讨论仅局限于MSVC的cl编译器和MinGW的gcc编译器。 第一部分:不涉及Qt(理清链接子系统和入口函数) 第二部分:Qt的链接子系统和入口函数(与第一部分完全对应上) 第三部分:QtTest模块出现控制台的原因与方案 第四部分:Graeme Gill 给出的很有意思的代码。原创 2011-04-24 16:28:00 · 12701 阅读 · 3 评论 -
Qt国际化(源码含中文时)的点滴分析
本文不介绍如何使用Qt的国际化、本地化支持。本文针对的是偏底层的、Manual和其他资料中很少涉及的东西。所以,继续之前,请先确保:你已经对如何使用Qt的国际化比较熟悉了。本文针对的是 tr("我是中文")这种情况, 是Qt中translate、tr 与中文问题一文提到的 2b 问题的深入。原创 2011-04-19 23:55:00 · 27057 阅读 · 18 评论 -
qDebug 学习小结
qDebug,经常用的一个东西,却一直没有静下心来好好看看。看到国外有人问 qDebug()原创 2011-06-01 22:02:00 · 57109 阅读 · 5 评论 -
Qt 下 Singleton 模式小记
在C++中实现单件模式时,何时销毁对象似乎总是一个问题。在Qt中,由于程序中(一般)会有一个QCoreApplication或其派生类的对象,再加上QObject半自动的内存管理方式。我们将QCoreApplication的对象作为该单件对象的父对象,问题就应该迎刃而解了。原创 2011-05-27 13:34:00 · 10531 阅读 · 0 评论 -
从 Qt 的 delete 说开来
在C++中学习过程中,我们都知道:delete 和 new 必须配对使用。可是,在Qt中,我们很多时候都疯狂地用new,却很少用delete。那么缺少 delete 去哪儿了?原创 2011-04-03 14:54:00 · 52693 阅读 · 49 评论 -
X11 入门练习
应该用不了多久,Wayland 就会取代 X Window System 在linux系统下的地位了。 尽管如此,稍微了解一点点X11编程的东西应该没有坏处。原创 2011-05-17 23:22:00 · 10137 阅读 · 5 评论 -
小小换行符乱谈(文本文件vs二进制文件)
不就一个一个小小的换行符么,值得C、C++、Python等各种语言如此的大动干戈?原创 2011-05-18 17:59:00 · 18109 阅读 · 8 评论 -
QMenuBar焦点问题 (QTBUG18896)
QTBUG18896,菜单栏菜单本来需要ALT+'M'(或其他字符)来激活,现在直接按'M'就可以激活了,原因何在?原创 2011-05-14 23:40:00 · 5602 阅读 · 0 评论 -
带Body的纯虚函数与不带Body的虚函数?(C++学习)
C++ 学习笔记之虚函数与纯虚函数原创 2011-05-12 23:56:00 · 9973 阅读 · 5 评论 -
用ISO C++实现自己的信号槽(Qt另类学习)
本文使用 ISO C++ 一步一步实现了一个极度简化的信号与槽的系统。希望能有助于C++用户理解Qt核心的信号槽与元对象系统是如何工作的。dbzhang800 2011.04.30原创 2011-04-30 15:02:00 · 20030 阅读 · 55 评论