0. 前言 不知道为什么,几乎所有的C++编程教程都是从命令行版(控制台应用程序)的Hello World开始的.然而,对于现在的年轻人来说,从小就用鼠标点击窗口或图标操作电脑,对于那个神秘黑色的窗口中的文字就像天书.对于我们这些从DOS时代走来的人,或许那个黑色窗口会唤起很多记忆,但是,对于当前的GUI化的时代来说,那个窗口已经没有多少意义了.除非为了显示我的知识渊博和高深莫测,通常我不会给年轻人讲述那个黑色窗口中的东西. 既然现在学习C++编程的都是年轻人,我还是讲一下怎样构建GUI版的He…
0.前言 在当前的行业发展和国际形势下,让更多的程序员思考跨平台编程问题.在众多的跨平台开发环境中,Code::Blocks具有独特的优势. 近二十年来,跨平台开发环境曾经如雨后春笋般产生,但是,由于后继乏力,逐渐销声匿迹者颇多.作为程序员,熟悉一个平台需要消耗大量的精力,把编写的程序移植到另一个平台也需要很大的精力.能够选择一个持久得到支持的开发环境,是一个长期从事软件开发的程序员需要考虑的. 在众多的跨平台开发环境中,Code::Blocks无疑是其中的佼佼者,特别是期望使用wxWidget…
[学习笔记] 如 何判断你的windows系统是32位还是64位? java -version时,如果没有64就是32位的.eclipse.ini中如果没有64,就是32位的.但是我们的ini文件里面有这句话: plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.500.v20170531-1133 解决了以上的问题,应该可以正常启动了. windows scala helloworld例子的步骤: 1)新建一个scala pr…
Linux下查询一个包是32位还是64位 [root@localhost ~]# rpm -qa  --queryformat %-{name}-%{version}-%{release}-%{arch}"\n" | grep net-snmpnet-snmp-5.3.2.2-9.el5_5.1-x86_64net-snmp-utils-5.3.2.2-9.el5_5.1-x86_64net-snmp-libs-5.3.2.2-9.el5_5.1-x86_64 [root@localh…
在工程属性的页面下,点击Build Events,在Build Events下点击Post-Build Event. 然后再Command Line里面输入以下命令: editbin /SUBSYSTEM:CONSOLE “$(OUTDIR)\FileName.exe” TIPS: 以上命令行其中FileName为工程生成可执行文件的文件名. 以上后面的双引号是为了防止路径中有空格把命令行参数给截断. ***********************************************…
function IsWin64: Boolean; var Kernel32Handle: THandle; IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall; GetNativeSystemInfo: procedure(var lpSystemInfo: TSystemInfo); stdcall; isWoW64: Bool; SystemInfo…
0.前言 随着64位计算机的普及,编写64位程序成为程序员基本的要求.我在<体验Code::Blocks下的C++编程>中描述了利用Code::Blocks官方提供的封装了编译器的安装包(codeblocks-17.12mingw-setup.exe)搭建开发环境编写C++程序的方法.但是,官方提供的安装包中的编译器是32位的,只能用于开发32位程序.如果你想开发64位的程序,就必须自己安装另外的编译器,而不是使用原来在安装包里的. 下面,我就介绍一下利用Code::Blocks搭建64位C+…
Code::Blocks 在2012-11-25发布了最新的12.11版本,相比上一个版本(10.05),Code::Blocks 进行了许多改进和更新(Change log). 引用 Wikipedia:Code::Blocks: Code::Blocks是一个免费.开源.跨平台的IDE,使用C++开发,并且使用wxWidgets做为GUI函式库.Code::Blocks使用了插件架构,其功能可以使用插件自由地扩充.目前, Code::Blocks主要针对开发C/C++程式而设计. Code:…
code::blocks编译运行C++程序(F9)默认出现的运行串口在有鼠标的情况下进行粘贴还是很方便的,只要按下鼠标滑轮,位与剪切板中的数据就能粘贴到运行串口中.但是对于用笔记本而且没有鼠标地童鞋这就比较麻烦了.这个时候可以将code::blocks默认的运行窗口改成Linux的命令行窗口.可以在code::blocks下通过如下过程进行配置: settings-->environment-->generalsettings-->Terminal to launch console p…
code::blocks编译运行C++程序(F9)默认出现的运行串口在有鼠标的情况下进行粘贴还是很方便的,只要按下鼠标滑轮,位与剪切板中的数据就能粘贴到运行串口中. 但是对于用笔记本而且没有鼠标地童鞋这就比较麻烦了. 这个时候可以将code::blocks默认的运行窗口改成Linux地命令行窗口. 我用的是ubuntu15.10Beta2版本(正式版本22号就能出来了,应该对所有ubuntu版本都适合吧),可以在code::blocks下通过如下过程进行配置: settings-->enviro…
本文仅介绍Code::Blocks+gtest环境配置,gtest具体使用方法请参考: 玩转Google开源C++单元测试框架Google Test系列(gtest)(总) http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 环境概要 Code::Blocks 13.12 Windows 8.1 gtest-1.7.0 说明 gtest是一个优秀的开源C++单元测试框架,详细介绍可以参考官方网站.由于某种原因需要在Wind…
项目中需要使用runkit模块实现AOP,但是团队成员的开发环境都是Windows,而runkit模块官方没有提供Windows环境下的dll扩展,只能自己编译. 下面是编译过程的分类总结.(操作系统环境为Windows 10 64位中文旗舰版) PHP的编译版本这里的版本指的不是PHP的发行版本,如5.3.7.0,而是指编译时所使用的编译器.程序架构和是否为线程安全.这些信息可以在phpinfo中打印出来.上图中所使用的PHP,是使用Miscrosoft Visual 2012中的MSVC11…
用户购买windows安装盘或者重新安装操作系统的时候,通常会遇到这个问题,就是不知道该如何选择使用32位操作系统和64位操作系统,有人说64位系统速度快,其实理论上确实是这样,不过具体还要根据你的个人电脑实际的硬件情况来进行选择. 扫盲必看 32位和64位Windows的区别 32位和64位Windows操作系统概述 一般关于32位和64位Windows操作系统的描述都是关于CPU和内存寻址关系,现在市场上销售的CPU产品大多数是支持64位的,而内存寻址方面说的就是操作系统的64位还是32位,…
使用Code::blocks在windows下写网络程序 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据General Public License,v3 发布 GPLv3 许可证的副本可以在这里获得:http://www.gnu.org/licenses/gpl.html 本文档根据GNU Free Documentation License 1.3发布 GFDL1.3许可证的副本可以在这里获得:ht…
       最近小白由于有工作学习的需要,要尝试在Linux下进行C++编程.所以特地花了一点时间研究一下Linux下的C++的IDE.最后我尝试了使用Code::Blocks和Eclipse两个著名的IDE.本文分享一下小白安装过程中遇到的问题和使用心得. 一.Eclipse (1)安装Eclipse CDT        小白的安装方式是通过以下三条语句来的. 1: sudo apt-get install eclipse 2: sudo apt-get install eclipse-p…
一.提前的话要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编译调试工具,不过这些工具都是命令式的,正式开发的话会很不方便.Fedora在安装的时候可以选择安装Fedora Eclipse,这个IDE很强大,C,C++,Java,Python等等都支持,而且编译,调试和测试等功能也很完善.不过一般太强大的东西都有一个 毛病就是速度会比较慢,在dave的机器上,打开Eclipse需要20秒之多,选项也太多,用起来眼花缭乱…
工欲善其事,必先利其器.用了这么久的linux,现在比较主流的几个C/C++的IDE基本已都用过了,现在来对他们做一下简单的比较. 1.VIM首先要说的是VIM.我认为,VIM只是一个编辑器,不能算是IDE.虽说VIM有很多插件,例如代码折叠.递进等,可以将VIM组建成几乎类似一个IDE,但始终它不是专门的IDE,所以在功能支持上还是远不如那些专门的IDE如:eclipse和code::blocks(这个是本文最后介绍也是我想向大家推荐的IDE).用VIM+GDB来编写和调试C++程序是很“痛苦…
windows核心编程整理(上) windows核心编程整理(下) 线程的堆栈 每当创建一个线程时,系统就会为线程的堆栈(每个线程有他自己的堆栈)保留一个堆栈空间区域,并将一些物理存储器提交给这个以保留的区域 当创建一个线程的堆栈时,系统将会保留一个链接程序的/STACK开关指明的地址空间区域 堆栈区域的最后一个页面始终被保留这,这样做的目地是为了防止不小心改写进程使用的其他数据 内存映射文件 与虚拟内存一样,内存映射文件可以用来保留一个地址空间的区域,并将物理存储器提交给该区域,他们之间的差别…
Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.exe 2 # -*- coding:UTF-8 -*- 3 4 import Tkinter 5 6 def center_window(w = 300, h = 200): 7 ws = root.winfo_screenwidth() 8 hs = root.winfo_screenheight…
因为机子上没有安装Visual Studio,所以找到了一种通过code::blocks编译dll的方式,踩到的坑是code::blocks默认的compiler是32位的,这样编译出的dll也是32位的,编译64位的需要借助MinGW-w64的toolchain. 为code::blocks配置外部MinGW-w64编译器可以参考Compile 64-bit under windows with MinGW-w64. 使用code::blocks创建一个dll的工程,如下图: go和next到…
windows下的socket网络编程 windows下的socket网络编程 clinet.c 客户端 server.c 服务器端 UDP通信的实现 代码如下 已经很久没有在windows下编程了,这次因为需要做一个跨平台的网络程序,就先写了个简单的winSocket网路通信的例子,以便以后用到的时候有个参考. windows下使用winsock编程与linux/unix的区别在于windows下需要先有一个初始化的操作,结束的时候需要一个清理的操作.还有windows下编译的时候需要连接ws…
windows下的socket网络编程 clinet.c 客户端 server.c 服务器端 UDP通信的实现 代码如下 已经很久没有在windows下编程了,这次因为需要做一个跨平台的网络程序,就先写了个简单的winSocket网路通信的例子,以便以后用到的时候有个参考. windows下使用winsock编程与linux/unix的区别在于windows下需要先有一个初始化的操作,结束的时候需要一个清理的操作.还有windows下编译的时候需要连接ws32_lib库. 大致过程如下 1.初始…
用户模式下的线程同步 系统中的线程必须访问系统资源,如堆.串口.文件.窗口以及其他资源.如果一个线程独占了对某个资源的访问,其他线程就无法完成工作.我们也必须限制线程在任何时刻都能访问任何资源.比如在一个线程读内存时要限制其他线程对此块内存进行写入. 线程之间的通信很重要,尤其是在以下两种情况下: 1:需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性. 2:一个线程需要通知其他线程某项任务已经完成. 线程同步包括许多方面,windows提供了许多基础设施使线程同步变得容易. 用户模式…
Linux下Code::Blocks无法编译运行提示 /bin/sh: 1: g++ not found 的解决办法 今天在Ubuntu 12.04 软件中心中选装了Code::Blocks,安装完成后却连最简单的hello world 都无法编译运行. 编译时提示 /bin/sh: 1: g++: not found 运行时总提示 It seems that this file has not been built yet. Do you want to build it now? 因为系统没…
Windows核心编程 第八章 用户模式下的线程同步 1. 线程之间通信发生在以下两种情况: ①    需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性 ②    一个线程需要通知其他线程某项任务已经完成 2. 原子访问 所谓原子访问就是一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源. CPU一个最小操作单位并不是一条编程语言指令,所以即使在线程中只有一行赋值语句,在CPU看来却不是一条语句,所以如果两个线程中有同样的一行赋值语句,那么也可能会发生不可预料的…
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器和调试器的信息如图所示: http://qt-project.org/doc/qtcreator-3.0/creator-debugger-engines.html (Home | Docs | Qt Creator 3.0 | Debuggingand Analyzing | Setting Up…
问题描述:   系统:ubuntu 12.04   code::blocks版本:10.05   问题现象:debug->start        之后出现:warning: GDB: Failed to set controlling terminal: Operation not permitted   断点设置无效   -g选项开了 解决方法:   1. Project->Properties...->Build Targets标签 ,选择 "GUI applicatio…
Qt4.8在Windows下的三种编程环境搭建 Qt的版本是按照不同的图形系统来划分的,目前分为四个版本:Win32版,适用于Windows平台:X11版,适合于使用了X系统的各种Linux和Unix平台:Mac版,适合与苹果MacOSX:embedded版,适合于具有帧缓冲(frame buffer)的Linux平台. Qt-embedded和Qtopia Qt在刚出现的时候,对于Linux和Unix系统,只有构建于Xlib之上的X11版.但随着Linux操作系统在嵌入式领域的应用日渐广泛,Q…
这段时间,都在做Ring3层的普通32bit程序兼容64bit操作系统的代码修改,在此记录修改和学习心德.编程领域太广, 任何人经历有限,本人不是专家,所以我一贯原则是: 用到的时候,才去研究,在去记录.只要个人的基础知识扎实,吸收一些新的东西,还是蛮顺利的. 1. 64bit操作系统的重定向机制以及目的   在64bit操作系统中,为了无缝兼容32bit程序的运行,64bit的Windows操作系统采用重定向机制.目的是为了能让32bit程序在64bit的操作系统不仅能操作关键文件文夹和关键的…
在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt-get install build-essential使用GTK+2.0需要安装GTK开发套件,在命令行中输入下面的指令安装GTK开发套件libgtk2.0-dev:sudo apt-get install libgtk2.0-dev安装完成后,可以使用pkg-config查看一下GTK的相关编译…