存档

‘C++’ 分类的存档
5月
26

Win32串口API

哎哟我去,根据最近老板催我干活的状态,大概我离去帝都某查水表研究所搬砖的日子不远了,那边的活要做一个系统,系统里面包含一个上位机软件,上位机软件和各种硬件各种通信,然后其中一个精密的东西通信用的是串口,于是,有了这篇东西;

作为一个Google的代码搬运工,我看了好多别人的串口代码,但是都发现没有封装得很简洁很给力的API;

之前用的某个代码扔给师弟用后,发现有些端口检测不到,而且接受数据那个模块是每收到一个字节就会调用一次回调函数,有没有接收完还要我自己写代码判断;

其他的代码完全没有把串口这个模块彻底封装起来,在MFC里面操作串口那些函数还和各种修改窗口的控件的代码混在一起,基本不具备可移植性;

再有一些代码就是很底层很细的,每次用起来都好麻烦的样子。。
阅读全文...

分类: C++ 标签: , ,
4月
21

卖油翁问题(闲作)

题目叫卖油翁,Category放在Coding这一栏里面,就已经注定了这是篇水文了,没错,我来灌水了!!

倒不是讨论什么算法,或者别的什么的,毕竟卖油翁的问题,虽然我没google过,但是我相信早就烂大街了。。。那我干嘛写?谁告诉你我这里没有烂大街的东西的??好吧,其实真是的原因是,我早就告诉你了嘛,这是篇水文的说。。。

没有,其实是这个样子的,最近稍显烦躁,事情有那么一点多,你看嘛,比如书我一周前装的《零之轨迹》我到现在为止就只玩了一个小时左右;上周借的五本小说,现在为止才看完了1.5本;还是上周,自己给自己开的坑,要看完CLAMP的《翼》和《xxxholic》,现在两本各看了一卷才,还有40+卷还在坑里面;再然后,你说嘛最近雀龙门老是四位三位的,怎么回事,难道我被发牌姬讨厌么了??;再再再然后,B站最近被奇艺什么的攻占了,虽然有黑科技,但是看番总觉得没以前那么爽了是吧。。。。。。。。。。然后最近老板突然把实验室春游的是突然搞给我负责,然后春学期马上就要结束了,我他喵的还有一篇论文没写,最重要的是,还有一个大作业完全不知道怎么弄,马上就要交了魂淡!!所以嘛,烦躁。。。

so?我就大半夜的在IPAD上找了十来个游戏来玩,其中一个叫《the curse》,就是各式各样的谜题,你来解,然后不就遇到了卖油翁问题了么?然后喜闻乐见的发现自己解不开了么?然后发现忙了一下午春游跟旅行团那边沟通的事,还有半个小时就到我个人固定的吃饭时间了,能干嘛呢?于是,就写了卖油翁的程序。。。(背景略长是吧。。。) 阅读全文...

分类: C++ 标签:
2月
27

C++数据库简易操作

哎哟我去,哥假期为了赚点别的老师的小外快,努力过年搬砖,搞个excel,还出了诸多问题,然后遇到的最麻烦的一个问题就是,读取速度太慢了,慢的令人发指,经过我对别人给的接口的源文件各种优化,4W多条也要40+s的时间,然后今天去跟那个老师聊了一下,他说,他们原本的数据时mdb格式的数据库文件,然后为了方便观察(保守估计老师电脑没有装Access),于是一师姐就把它转到excel里面去了,其实呢,源数据是mdb的,所以让我改成读取mdb,哎哟我去,早说嘛,我假期某两天的努力就这样白费了。。。话说我上次用数据库MS是当年企鹅实习的时候了,之后就再没碰过了。。。

然后找了一下简单的示例程序看看,好吧,MS比我以前学的简单很多。。。下面是正文。。

算了,不想说那么多废话。。。直接给Code好了。。反正简单易懂。。。

首先要做的事情就是添加头文件#include <afxdao.h>

下面展示如何创建数据库,插入项: 阅读全文...

分类: C++ 标签: ,
2月
15

C++调用excel读取日期问题

今晚弄一个程序项目,遇到一个问题,其中一个部分需要读取excel的数据,之前研究的C++读取excel数据的方法,我以为基本可以万事大吉了,然后那个项目里面给的数据库的excel数据呢,出现了日期的格式,比如说打开那个excel文件里面可以看到单元格的数据是:2012-5-1  0:00:57,当你在excel里面设置单元格格式为“常规”的时候,它的值就是41030.0006597222,尽管如此,用之前文章里面提到的那个方法呢,读出来的结果是空字符串,然后研究了一下,把之前那博文里面的某部分改一改其实就可以了。

看一下XLAutomation.cpp那个文件里面的CString CXLAutomation::GetCellValueCString(int nColumn, int nRow)这个函数,不用细看,经过一番处理之后,有下面一段代码:

VARTYPE Type = vargValue.vt;
switch (Type)
{
    //balabala
}

阅读全文...

分类: C++ 标签: , ,
11月
28

Excel的C++操作

最近老板让我去帮他朋友去弄一个莫名其妙的项目,其中要用到在程序中读写Excel数据。其实很久以前就就有遇到项目中要用上Excel的,但是最后不是无视掉了,就是换成.txt来读写,再不是,就是用.CSV来伪装。。。

虽然我知道不难,但是就是懒得去弄,最近被迫,只好去网上找一下别人的代码了,反正我不可能会去自己写的,顶多改改别人的代码。。。

嘛~找到的别人的程序里面可以用的,或者说比较好用的有两份,研究了一下使用状况,其中一份因为是和数据库有关,所以必须要写入一项header作为ID,因为这是数据库这种东西所必需的,但是那个代码里面呢,这个Header是要写在Excel第一行的,虽然研读+调试都没把这个东西彻底去掉,所以放弃了。。

另外一份虽然文件很多有很大,但是比起之前那个,实用性强多了。方法嘛,就是OLE,有点复杂,代码很长,有空具体研究一下【估计这句话八成是扯淡。。】,反正研究了一下怎么用,感觉还是方便又实用的。。

阅读全文...

分类: C++ 标签: , ,
11月
18

汉字拼音表--编程用

本科期间嵌入式那门课的最后大实验是在Arm上做一个短信发送的界面平台,然后控制GRPS模块发短信。老师说那个输入法你们要自己写,然后我就傻不溜秋的模仿者智能ABC写了个输入法,最后发现班上好像没什么人写。。。。

然后最近想做一个东西,其中一个小功能就是在一个Edit输入框里面输入要搜索的东西的前几个拼音的时候,下面像Google百度那些搜索引擎一样给出候选列表,你就可以直接用,额,这个效率问题还在研究中的,然后拼音和汉字的对应表我想起了本科的ARm作业里面用过,找出来,然后把QT版本的.h文件改成C版本。。。

注:如果编译的时候出现“error C2001: 常量中有换行符”,请将这个.h文件改成UTF-8编码。 阅读全文...

分类: C++ 标签: ,
8月
11

(怀旧向)第六弹:算命预测

这个程序是一个很小的,很容易写的小程序,今天整理时无意中翻到,放上来看一下吧。

程序是这样的,不知道大家听过没,有些街边算命的,有一些人说可以猜出你姓什么,然后就给你看几张纸,每张纸上都写满了各种百家姓,然后你只要告诉他哪些纸上有哪些没有,然后他就可以马上“猜出”你姓什么。

我第一次接触到这个“魔术”是在小学看一本小学四年级的奥数书上,上面开始讲解进制的概念,然后出了道题,说老师让学生心里默想一个1~100的数,然后给他看若干张纸片,问他每张纸上有没有他内心想的那个数,然后老师就可以知道那个数是什么。题目让你讲解这个原理。(我一直觉得,这道题出现在小学四年级的奥数题里是不是太难了。。)

现在作为一个大学生,一个懂得何为二进制的大学生,这个手法显然是可以瞬间识破的(不过算命那个还要背一张比较大的数字→姓氏的表。。) 。

然后下面那个程序就是模拟这个猜数的过程的。一点都不难。

不过我现在仍然记得当时写这个程序时出现的唯一的一个麻烦,就是当时算log2n来计算需要多少张纸的时候,需要算出log2n取整,但是当n取8的时候,理论上应该是得到3,但是计算机算出来的是2.9999999...,然后取个整,变成2了,最后研究了一下,只好计算log2(n+1)来解决问题。。 阅读全文...

分类: C++ 标签:
7月
25

(怀旧向)第二弹:数独全解程序

要把这代码贴上来我都略显不好意思了。也是大一暑假时候写的吧,一直觉得递归是个很神奇的东西,任何用了递归的代码都会变得很艺术,嗯,记得大一第一次被编程这种东西震惊到的时候就是看网上一个全排列的C++代码,显然是递归,当时对递归还没有太大的概念,所以一步一步跟着那个代码走了很深,最后觉得,编程真是一门艺术啊!!(难道我喜欢上编程就是那段代码害的??)

不过现在看看这段数独全解的代码,还真是。。唉。。都说了是怀旧向了,就不能乱改了,现在不知脑子被门挤了的话是绝对不会变量用a来表示的,也不会在主函数里面写一大坨,你看看shudu那个函数里面那个销魂的花括号,哈哈哈,现在能笑,说明我成长了~

阅读全文...

分类: C++ 标签:
7月
25

(怀旧向)第一弹:矩阵程序

好吧,最近我闲的蛋疼,于是就搞个专题,怀旧向程序。哎呀,就是把以前那些写过的好玩的代码拿出来看看,然后。。。额。。没然后了。。就是拿出来看看。。。

矩阵程序是我大一学完C++的那个假期无聊写的一个代码,现在看起来只能说,我去,真是弱爆了,倒不是说那个编程的代码的优化啊什么的,就是看那个花括号的位置和for写在一行,变量命名完全不没规律,双目运算符前后没有空一格之类的,还有就是一开始学的时候是在VC6上写的,现在那东西都被我抛弃多少年了??放上来之前用Alt+F8优化了一下。。

不过嘛,我个人一直觉得这个程序写出来很有成就感,当年大一,接触到编程这个概念也才10个月,而且中国的大学教育下,咳咳,你懂得。然后我花了3天吧,扒拉扒拉的写出了这个程序,反正就是个大杂烩,对着线代的课本,把证明题以外的东西全部集成进去,矩阵的运算自然不说,然后还有解线性方程,求秩,化简,然后施密特正交变换什么的,最后最让人抓狂的就是算特征值和特征向量,当时完全不懂这个算法有多难,然后去图书馆找了半天书,想了个方法最后却被证明想错了,没办法之下只好用暴力枚举解决,额,算了,大一些的小东西嘛,怀念怀念就好。

阅读全文...

分类: C++ 标签: ,
6月
18

DOC界面下调用钩子

之前想写个很简单的游戏,想用OPENCV,但是不想用MFC,结果写着写着。。发现要响应键盘,显然不能每个While循环都来调用CvWaitKey,最好就是用钩子,但是以前一直是在MFC里用,在DOC界面下没弄过,就要久了大半天,总算搞出来了。。

留做备用,话说代码高亮要怎么弄?

阅读全文...

分类: C++ 标签: ,