- 博客(56)
- 资源 (3)
- 收藏
- 关注
原创 窗口设置背景图片失败
为Qt应用程序设置背景图片,一切看似很简单,看网上的方法都是千篇一律:QWidget *widget = new QWidget;widget->setAutoFillBackground(true); QPalette palette;palette.setBrush(QPalette::Background, QBrush(QPixmap(":/background.jpg")))
2017-01-15 23:35:04 822
原创 匆匆的一年又匆匆地过去了
转眼间,一年又过去了,回想刚过去的一年,心想时间怎么就流逝得这么快,去年的春节情景还历历在目,这马上又要过了,日子一天天充实而又平凡地过着,到了一回首,好像没有什么难忘的事情,也没做出什么值得夸耀的业绩,年少时的激情早已不在,梦想呢?好像现在已经生活在梦想里了,做着自己喜欢的工作,看着喜欢看的书,平时再琢磨琢磨一些兴趣爱好,生活也就这样波澜不惊地过着。 人们一聊天,说到一年过去,
2017-01-08 23:58:09 2432 1
原创 如何测试网络连通性
在一个一般的局域网里,要测试两台机器通不通,就用Ping命令,格式为Ping [对方IP]。如果在一个有些限制的网络里,比如,远程服务器装有防火墙,不允许Ping,只开放一些端口供应用程序使用,那只能使用telnet工具来测试了,经测试一个端口开没开,可以使用如下命令:telnet [对方IP] [端口号],如果这个端口开了,那么会弹出一个新的黑窗口,否则会显示一些消息表示连接不上。不过这种方法不
2016-12-25 23:54:55 12137
原创 记一次令人难忘的培训
这周参加了一个有关项目管理的培训,培训的老师具有极其丰富的工作阅历,可以用传奇二字来形容,他做过软件设计师、项目经理、培训讲师以及心理学咨询师和企业创新咨询师。并根据自己的切身实践经验创立了一整套创新理论,并将该创新理论成功应用在华为、海尔、京东、谷歌等公司的产品创新设计上,在业界引起了很大的反响。这一周来,老师不单单给我们做项目管理方面的培训,还将他的这一套理论以游戏互动等方式给我们讲述并体
2016-12-19 00:45:19 1308
原创 绘制Koch曲线
提供绘制Koch曲线的html5代码一坨: function draw() { var pi = 3.14159265; // 获取画布 var canv = document.getElementById("blackboard"); var context = canv.getContext("2d");
2016-12-12 00:13:11 2853
原创 太阳系及银河系尺寸的直观概念
前些日子在网上看到一篇科普文章,用图片的形式表示了从地球的尺寸到整个银河系的尺寸,看后很是震撼,于是想要做进一步直观的对比。 先从地月系来比较,以最小单位一毫米算,就把月球直径看做是一毫米,也就是一个小米粒的大小。 地球直径是月球直径的3.6倍,3.6毫米,可以看做是一粒绿豆。地月距离是月球直径的110倍,算来是11厘米,差不多是一个小记事本的宽度,地球和月球的
2016-12-05 00:48:32 6347
原创 Qt使用styleSheet制作XP风格的按钮
Qt中设置界面样式的方式是使用styleSheet。比如设置一个对话框的背景颜色为蓝色,可以设置styleSheet属性为“background-color:#0000FF"。还有许多其它的界面样式可以使用styleSheet。这种方式的能力还是很强的,但也有一些不足,比如说比较复杂,还要学习类似于CSS的东西。除了复杂,它还有一些不尽如人意的地方,会有一些莫名其妙的行为。比如说,设置完对话框的背
2016-11-27 23:51:10 1105
原创 JSON Schema小记
JSON是一种表示数据的格式,类似的还有XML。与XML对比,JSON比较易读,而且数据量比较小,就是行话里说的比较轻量。JSON在Web应用里用得比较多,如今,好多本地应用里也可以一见它的身影。 以往我们总讲面向对象编程,现在又逐渐泛出另一种思想,称为面向数据编程,据我的理解,讲的是数据即是对象,对象即是数据,举个例子,两段程序,分别对应两个对象,它们接收数据而且产生数据,如果
2016-11-21 00:14:36 973
原创 使用QML编写舒尔特表小程序
舒尔特表是一种训练注意力的表格,表格内容是打乱顺序的自然数序列,练习时,需要按照顺序从最小数点到最大数,用时越少越好。下面说明如何以QML/javascript为主要编程语言来构建这么一个小程序。 首先创建一个Qt Quick项目,构建套件选择两个,一个是Windows平台的,一个是android平台的,日后可以在android手机上玩儿,而且在Windows平台上调试比较方便。
2016-11-14 00:40:16 1274
原创 舒尔特表的生成算法
舒尔特表是一种训练人的注意力的表格,一般是方格,从3阶到6阶比较常用,每一个小格内显示一个乱序列排列且不重复的数字,比如3阶舒尔特表每一排的数字可能是4,2,5;8,6,7;3,9,1。这种表格的使用方式为从1一直点到最大的数值,然后记录用时,用时越快表示注意越集中。 生成舒尔特表的过程也就是将一组数字随机打乱的过程,然后依次填充到每个小格里去,我们可以封装一个函数,用于生成从最
2016-11-06 23:54:32 3404
原创 软件接口与扩展性
如今,接口这个名词已经成为软件架构师乃至程序员们三句话不离口的词汇了,成为了时尚的代表,不说接口,就感觉自己档次很低一样。同样,接口一词也被人们用滥了,其范围也是越扩越大,边界也越来越模糊。其实,对C系语言来说,接口无非有两种,一种是数据接口,举个例子来说,一个对外公布的数据结构。另外一种是功能接口,尤其对C++语言来说,它就是一个纯虚类。我们今天讨论的是后一种接口。 接口是纯虚
2016-10-31 00:16:46 3761
原创 探讨一下古代诗人的科学素养
古今第一高楼是哪座?按理说当然是今天的迪拜塔了。然而传说中并不是这样,据说古巴比伦人要修一座通天塔,后来在上帝的干扰下没有成功,但是修到了什么程度,没有确切的记载,也许能超过今天的最高。不要说这些没有跟据的传说,就是中国唐朝就有许多诗人都不以为然。 要论海拔高度,李白诗《夜宿山寺》中写到“危楼高百尺,手可摘星辰”,手都可以摘到星星了,海拔高度可想而知。不过要以严谨的思维来评论这些
2016-10-24 00:14:31 405
原创 跨平台的中文编码问题
卓越的程序在各平台之间来回切换时不需要考虑编码问题,然而在实际应用当中很难做到这一点,退而求其次,当程序需要适应多平台时,如果能把编码问题局限于很小的某个功能模块内,最大限度地降低业务逻辑与数据交互之间的耦合度,也是一款比较不错的程序了。以实际工作为例,要把公司主线产品移植到linux内核的麒麟操作系统中,产品在中文Windows系统中运行正常,在麒麟系统下就会出现崩溃等情况,经检查,因为配置
2016-10-17 00:12:57 877
原创 Clang解析C++程序(3)
编译器实例的语言设置不区区只是C语言和C++语言的简单区分,其中有多达100多条设置,其中绝大部分我都看不明白,看不明白也不用去弄明白,工作这么忙,只要知其然就好,下面是我经过仔细比较得出来的需要去手动设置的项,其它的都用默认设置。LangOptions &lo = TheCompInst.getLangOpts(); lo.MSVCCompat = 1; lo.MicrosoftExt =
2016-10-10 23:39:03 1042
原创 用js写本地应用程序
js一般被用来写网页前端,后来又出现了用js作为其语言的服务器技术,node.js。使用js作为语言来写本地应用程序?反正我没听说过,直到前两天想写一个小程序,尝试了一下新技术,才发现js原来还可以这么玩。 js一般与网页联系比较紧密,可以用来操作网页文档结构,Qt中的Quick技术与其很类似,使用了一种叫QML的语言,用来定义各种图形元素,文本、形状和图像等,它们以一种嵌套式j
2016-09-30 00:24:16 3562
原创 Clang解析C++程序(2)
上一次说到将编译器实例的langoption中的CPlusPlus变量设置为1,就可以解析C++的程序了,也只是能解析简单的一段C++代码。后来在解析一个工作中用的头文件的时候,报了一大堆错,像不认识size_t啦,不认识__int64啦之类的。我简单地又构造了一些代码放在原来的简单代码段中,一运行,发现也认识。仔细区别了一下,发现两边代码有一个不同之处就是一边有包含的头文件,一边没有。我又重新在
2016-09-27 00:18:22 1203
原创 状态机小记
工作上有个功能模块用到了类似状态机的东东,于是上网科普了一番。状态机是由一系列输入驱动,然后系统由其中一种状态转换为另一种状态并产生某种输出,这样子的一个系统叫做状态机。状态机分为两种,一种是输出只和系统状态有关,叫做摩尔状态机,另一种是输出和输入以及系统状态都相关,叫做米莉状态机。有关输入、状态和输出的关系,相对来说比较复杂,暂且不述。仅就举两个简单的例子说明啥是状态机。 一个
2016-09-17 23:17:51 616
原创 浮点数之坑
boost有一个获取1970年到某个时间点所经过的微秒数的函数,如果精确到秒,这个数后六位是0,这是个64位整数,我们经常用它来获取秒数,也就是除以1000000,为了兼容毫秒精度,经常是除以一个浮点数1000000.0f,这里出现了一个坑,如果除单精度数,算出来的数会和标准秒数差个几十秒,所以最好能除以一个双精度的浮点数,不带f,1000000.0,这样算出来就是标准秒数了。当然,如果更注重效率
2016-09-11 22:47:43 635
原创 在麒麟操作系统上迁移Windows程序
一日,从用户那里得到一张中标麒麟的操作系统安装盘,要把公司的产品从Windows系统迁到麒麟系统上,于是从安装虚拟机开始工作。 中标麒麟是以Linux系统改写的,所以选虚拟机操作系统时选择linux系列,经过几次选择,发现是2.4版64位系统。然后一键安装,最后重启系统时出现了漂亮的绿色桌面。 虚拟机安装完成,接下来迁移系统,经过一番熟悉系统操作之后,发现这个麒
2016-09-04 18:13:43 7152
原创 Clang解析C++程序(1)
网上有篇Clang解析C程序的文章,用来给程序加上注释,正好手头上有个工作就是根据头文件生成一个接口文件,比如C语言接口。可以根据头文件的函数定义适当地改一下,结果,把文章中使用的那个C程序文件替换成C++头文件后,Clang解析器报错,说找不到include里包含的文件,看Clang源码看了一通,瞎猜着给设置了一下头文件包含目录,在HeaderSearchOption中AddPath,这下不报找
2016-08-30 23:03:57 2503 1
原创 Qt开发Android APP之微信应用
android手机现在使用得比较普遍了,网上各种各样五花八门的应用极大地丰富了手机党们的精神生活,说到手机应用,微信可以说是当仁不让的老大,路边、公交、地铁,随处可见人们不停地用手指划拉着屏幕,刷着朋友圈,或者朋友之间以将近5赫兹的指频敲击着屏幕,互发消息,并辅以丰富多彩的表情表达此时的心情,聊得很嗨。那么作为一名刚入门的移动应用程序猿,能开发出一款和微信相关的应用来,必然是有着不小的成就感。刚好
2016-08-22 00:47:40 6649
原创 谢尔宾斯基三角垫
使用混沌描点的方法画出来的,很神奇。以下是网页代码,只能在支持html5的浏览器上看。 function draw() { // 获取画布 var canv = document.getElementById("blackboard"); var context = canv.getContext
2015-12-21 23:33:36 770
原创 php上传文件中文名变乱码及下载时找不到文件
做一个文件上传下载的功能,做好后上传英文名的文件没问题,上传中文名的文件后,文件名变成了乱码。后来查到,PHP默认是将文件名转成UTF-8编码来保存的,所以只要在上传完成后使用iconv将文件名转成GB2312编码的就可以了:$file= iconv( "UTF-8" , "gb2312//IGNORE" , $file );move_uploaded_file($_FILES['upfil
2013-10-18 10:48:02 1441
原创 为应用程序添加脚本访问功能
首先,要有一个可以通过代码访问的应用程序,两种方式,一种是程序提供应用接口,要么是API,要么是COM接口,另一种,能够获得程序全部的源代码。 以上条件具备后,接下来,比较专业一点的方式,建立一个脚本编辑器程序,一般用一个单文档的应用就行,View类里放一个RichEditCtrl或者第三方的脚本控件,如Scintilla等,主要是为了编辑脚本方便以及提供一个美观的界面,让脚本程
2012-11-16 18:01:05 1464
原创 js与vbs脚本中的日期时间概念
最近要写一个在本地运行的脚本编辑器,要实现对js和vbs两种脚本的编辑和解释运行,js我用的是v8引擎,vb找不到又好又快的引擎,就用微软的Active Scripting技术来实现,在实现过程中,对date类型的解析颇费了一番周折,前面实现了对js的日期类型的解析,单独提了一个函数出来,用来将js的date类型转化为本地的date类型。后面用vb来弄时,发现vb脚本中的日期时间和js有很大的区别
2012-11-13 11:02:32 1131
原创 一次调试内存泄漏的过程
最近事少,尝试做一个控件容器,下载一个微软的代码来研究,不得法,于是建一个新工程,把重要代码一点点拷过去,总算要完成最基本的功能了,然而在程序退出时显示一个内存泄漏。不大,只有4个字节,心中很不爽,找一些调试内存泄漏的文章来看,大部分说用_CrtDumpMemoryLeaks()什么的,还说在vs里,默认的就能把内存泄漏的地址,包括源代码行告诉你,我看了一下,只给出地址,没给出行。反复执行多次,发
2012-10-11 17:23:54 561
原创 为MFC程序添加ATL简单对象
当建立一个MFC程序,之后又想把其中一个类做成com的,以便其它程序调用,那么你就可以为这个MFC程序添加一个ATL简单对象,把这个类的方法定义成ATLCOM组件的方法。这里IDE(我这里是VC2008)会提示你将为应用程序增加ATL支持。确认后,IDE会忙那么几秒钟,过后,那个为你添加ATL简单对象的的向导就出来了,你就可以顺理成章地增加对象的方法和属性了。等一切完成后,这个com对象是封在一个
2012-07-13 14:21:05 1265
原创 html显示空白页面的问题
一个xhtml类型的网页,在dreamweaver中显示是正常的,在浏览器中打开却显示空白页面,经研究发现是一些标签的写法有问题,如写成了,这是一种简化的写法,谁知浏览器却不吃。心想有可能和xhtml的语法规则有关,没有仔细深究。
2012-06-25 16:53:33 2853
原创 javascript未结束的字符串常量错误
测试环境ie6,正常页面中的js没问题,把这块代码放到svg的脚本中就出现问题了,“未结束的字符串常量”,经检查发现一个函数中使用了“&”这个字符,是这样写的“var strArray = receiveString.split("&");”把它换成了一个别的字符,就没问题了。在谷歌的浏览器中没出现这个问题。
2012-06-15 10:24:34 609
原创 将海康视频sdk源码封装成控件
近日有一个客户想要做一个视频控件,指明要用海康的视频服务器,并提供给我一个SDK演示程序,是一个对话框,上面布满了大大小小的按钮、菜单等控件,我拿过来一看,好,有十多万行源码,好在客户要求的功能不多,只有一个录像功能。 我就在源码里面删控件,最后总算弄得非常简单明了。后面的问题来了,如何把这个对话框封装成控件呢,根据我的经验,在控件中可以嵌入对话框程序,网上也有例子,但那是在Act
2012-05-28 13:30:29 3246 3
原创 zedGraph日期时间X轴的问题
使用zedGraph日期时间轴,它的时间总是12小时制的,也就是上午下午没有区别,让人看着不爽,从网上查了半天,也没有让人能实践成功的经验,没办法,只好从网上下了源码来看,找半天,又建了一个测试项目调试了一下代码,发现问题出在格式化日期时间字符串上,zedGraph的日期时间格式化字符串完全就是套用的DateTime的ToString函数,查出来这个就好说了,msdn上找一下这个ToString函
2011-11-16 10:09:31 4637 8
原创 无法解析函数名的dll
在一个装有VC6的系统下,用VC6生成的dll,在Depends下可以看到函数名,然而把这个dll拷到只装有2008的系统下,用Depends看就只能看到一条乱码似的函数入口点。想不太通,后来把这个dll加上一个def导出文件,再生成一次,就可以在只装2008的系统下看到函数名了。印象中def文件是给不是C/C++语言调用dll准备的,2008中没有C++?看来好象是没有,要么它怎么不认VC6生成
2011-11-16 10:01:40 695
原创 .net中调用VC6生成的dll问题之操作系统无法运行
有时候,我们用.net调用VC6生成的dll时,会报错,显示异常信息时,后面一句为操作系统无法运行,用depends看一下,发现mfc42d.dll是坏的,奇怪,明明我的系统里有mfc42d.dll,折腾了好长时间,后来灵光一现,把一个早期版本,也就是VC6时期的mfc42d.dll拷到应用程序目录下,就可以了,坑人的ms!
2011-11-16 09:53:18 662
原创 怎样把tlb编译进exe或dll中?
这方面的资料太少了,找了很久才在一个角落里找到:如果你是用VC的ATL做的开发,那么缺省是会加入进去的,如果不是的话,你可以手动往资源文件.rc中加入如下代码: 1 TYPELIB DISCARDABLE "Your
2011-08-19 16:38:43 767
原创 使用ATL为COM组件增加多个双接口
自微软开发ATL以来,使用ATL为COM增加多个双接口就是一个老大难的问题,尽管网上有不少个人声称有解决方案,但也都存在一些问题,微软自己也在技术支持网站上说不建议为组件增加多个双接口。 我想大多数想增加双接口的人肯定是既想用虚表的高效性,又想用自动化接口的灵活
2011-08-19 11:50:14 1680
原创 由VBA想到的
由VBA想到的<br />这段时间由于工作原因研究了一下VBA,感觉完全是如坠五里雾中,主要原因是对ATL乃至对COM技术的应用不了解。简单说一下VBA,用过Office系列软件的朋友都知道它,用VB语法来控制文档生成过程,很不错。不只是Office,很多其它优秀软件都有VBA模块,比如AutoCAD。<br />这些都是VBA技术的应用,作为编程序的,当然想把好东西都拿来自己用,VBA技术<br />无疑是这些软件的亮点,所以成功地把VBA应用到自己的软件中是当前这段时间要攻克的主要难题。<br />历尽
2011-02-12 15:05:00 711
原创 文档的力量
文档的力量<br />做软件开发要写文档,文档主要起的是一种说明性文字的作用,为了让用户很方便地使用你的软件,最起码要写一个用户手册,当然,有些软件不用写用户手册用户也会用,比如Windows自带的计算器,往往这类软件在用户点击帮助菜单后,弹出一个版权信息,这也算是一种文档吧。大多数软件都要比计算器之类的程序要复杂得多,所以用户手册一般是免不了要写的。<br />针对用户,要写帮助文档,针对软件开发过程,则要写开发文档,以往开发文档包含软件需求分析、概要设计、详细设计以及测试计划和测试报告等一大堆文档,所有
2011-02-12 15:04:00 521
原创 色彩空间的编程
色彩空间的编程<br />假设有这么一个问题,一个油气田公司的报表,想表示在过去的一年里,十二个月中每个月的原油产量和天然气产量的趋势是什么样的,怎么用一个简单的图表表示?大家可能会立刻想到,把每个月的产量在图表上标一个点,然后把这些点连起来,就成了趋势线,原油产量连成一条线,天然气产量连成另一条线。那么如何区分哪条线是原油,哪条线是天然气呢,答案也是很容易想到的,就是用红颜色的线表示原油,蓝颜色的线表示天然气。或者说红颜色的线表示原油,绿颜色的线表示天然气。到目前为止,用户和程序员想的都是一样的。<br
2011-02-12 15:02:00 1185 1
原创 随机地图定位的思考
随机地图定位的思考几乎人人都用过地图,你如果去另外一个城市旅游,下车第一件事就是买张地图。如今网络的发展催生了新的形式的地图-电子地图,更加方便了人们的生活。无论你是使用电脑 上网,抑或是手机上网,都可以登录网上的电子地图,直接搜索你要到达的目的地以及最快捷的到达目的地的方式,方便至极。电子地图比纸地图方便的地方在于,它不仅可以浏览,而且可以随意缩放以及运算,如计算两地距离,统计办事处数量等。任何地图都是基于一定的坐标系来绘制的,地图专业知道,世界地图可以有多种不同的坐标系,对于广大地图用户来说用的最广泛的
2011-02-12 15:01:00 1192
原创 Js脚本加密思路解析
Js脚本加密思路解析纯粹的js脚本可以被下载到本地,从而把你辛辛苦苦写出来的代码据为已有,所以网上有很多加密js脚本的方法,然而高手们在研究加密方法的同时也指出,绝对的安全对js代码来说是不可能的,因为无论怎么加密,最终你要把加密后的代码通过解密过程在客户端的浏览器中运行起来。也就是说加密的过程可以不写在目标代码中,而解密过程则必须要写在代码中,否则浏览器没办法执行。网上有另外一种办法,就是把js脚本嵌入到asp代码中,这种办法是否可行,我没有验证,因为我是php、apache等开源软件的拥护者,对asp不
2011-02-12 14:59:00 1696
可以处理中英文字符串的CString类
2012-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人