
编程应用
文章平均质量分 76
zero_lee
这个作者很懒,什么都没留下…
展开
-
glibc中几个数值处理函数
ceil/floor/rint/round,这几个C的数值处理函数,我们通常用它们来取整某个特定的浮点数。— Function: double ceil (double x)These functions round x upwards to the nearest integer, returning that value as a double. Thus, ceil (1原创 2012-08-15 09:46:15 · 919 阅读 · 0 评论 -
[Happy Coding] 加速Windows GUI debug版本的编译
1. 问题描述我们重构我们的GUI程序时,增加了很多小的工程库,VC++编译GUI最顶层DLL库libpkgA的速度让人几乎无法忍受。以下是从我们的buildbot系统里截取出来的LOG:28>...28>Embedding manifest...28>Build Time 188:17编译时间**188分钟**。GUI app依赖于这个DLL库,同时也依赖原创 2014-01-10 16:02:18 · 1308 阅读 · 0 评论 -
[Happy DSA] 删除单链表中任意一个节点的方法
在阅读c-algorithms代码时,又看到如下的代码(删除单链表中任意一个节点)/* A singly-linked list */struct _SListEntry { SListValue data; SListEntry *next;};int slist_remove_data(SListEntry **list, SListEqual原创 2013-11-11 17:37:24 · 1223 阅读 · 0 评论 -
[Happy Coding] 一个正则表达式,支持逻辑和关系运算符组成的表达式计算
I. 写一个正则表达式,要求判断一个数是否满足以下条件:>= val1 && 1. val1和va2要求支持浮点数;2. 支持>, >=, 3. 支持&&, ||, and(不区分大小), or(不区分大小写)逻辑运算1) 有效的浮点数的正则表达式如下:([+-]?\d+(\.\d+)?|0?\.\d+)支持+/-m.n, m.n, .n, 不支持m.2) 关系原创 2012-08-15 09:57:44 · 11846 阅读 · 0 评论 -
[Happy Coding] 关于system/exit/wait的解释
关于system/exit/wait的解释先看下面的代码段:static int system2(const char *command){ pid_t pid; int status; pid = fork(); if (pid == 0) { int null = open("/dev/null", O_RDWR); d原创 2013-10-29 20:44:31 · 1070 阅读 · 0 评论 -
[Happy DSA] 程序实现绘制箭头的原理
下图演示了如何给一条线段画上箭头的实现原理,主要也就是如何旋转一个向量。其中rotation angle和scale都可以在程序代码中自定义。原创 2012-08-15 10:20:39 · 705 阅读 · 0 评论 -
[Effective WX] wxPropertyGrid遇上wxWS_EX_VALIDATE_RECURSIVELY产生的BUG
对于wxWidget的第三方库wxPropertyGrid,客户端代码实例化一个wxPropertyGrid时有时会发生CRASH。简单的说,就是下面的代码行在某种情况下会CRASH:wxPropertyGrid* pPG = new wxPropertyGrid(pParentWin, wxID_ANY);那么到底是在哪种情况下呢?编写了一个简单的测试代码,跟踪调试发现,C原创 2013-06-30 23:43:26 · 1249 阅读 · 0 评论 -
[Happy Coding] 只能new不能delete的基类实现方法
1. 问题提出定义一个类,客户端只能new不能delete,但是要求这个类能够被继承。2. 问题分析客户端代码能够new一个类实例,说明这个类提供了对应的public访问域的构造函数,不能delete它,说明这个类没有提供public访问域的析构函数。也就是说,析构函数要么是在protected访问域中,要么是在private访问域中。但是要求这个类能够被继承,至少说明析构函数原创 2012-08-15 10:16:40 · 1722 阅读 · 0 评论 -
[Happy DSA] 图像的contour trace算法C++实现
问题提出:给定一个二维图像,基于某个threshold,来提取contours。在图形图像学中,这个问题有比较好的解决方案,google "coutour trace",可以得到以下2个比较好的参考文献:1. http://en.wikipedia.org/wiki/Moore_neighborhood2. http://www.imageprocessingplace.com/d原创 2012-10-15 16:21:57 · 4883 阅读 · 7 评论 -
[Happy Coding] fprintf 不正确调用惹的祸
我们都知道C语言标准库操作文件写有一个函数叫做fprintf,用来写出字符串到文件里。这个函数如果不特别注意,会给我们带来很大的麻烦。比如下面的代码段:const char* outstring = "xxxxx";FILE* outfileH = fopen("test.txt", "w");if (!outfileH) { return false;}fprint原创 2013-06-25 23:33:46 · 1910 阅读 · 0 评论 -
[Effective WX] win7上的wxFileDialog的默认路径问题分析与解决
wxFileDialog是wxWidget库的一个类(关于wxWidget库,可以参考 http://www.wxwidgets.org/)。这个类用来操作本地文件的打开与保存。在不同的平台上,wxFileDialog封装平台原生的API来实现,譬如win32平台,封装了GetOpenFileName和GetSaveFileName这2个API函数。我们只讨论win32平台。既然只是简单的封装这2原创 2012-08-15 09:54:13 · 2793 阅读 · 1 评论 -
[Effective WX] wxAUIManager在GTK实现上的一些问题
1. wxAUINoteBookwxAUINoteBook,内置一个wxAUIManager,用来管理所有的pages.如果创建一个notebook,然后将其添加到上层的auimanager中: m_pToolsNotebook = new wxAuiNotebook(this, ID_TOOLSPANE_NOTEBOOK); this->GetAuiManager(原创 2012-09-02 16:55:43 · 2024 阅读 · 1 评论 -
关于<C专家编程>的笔记
重新阅读, 以下是关于的笔记,觉得要重点掌握的。1. 关于const的变量的赋值foo(const char** p) { }main(int argc, char** argv){ foo(argv); // ***}上面代码段中//***会产生编译错误。原因在于const char** p = argv;赋值是不被允许的。原创 2013-11-14 18:30:11 · 935 阅读 · 0 评论 -
[Happy Coding] luabind 0.9.1版本尝试
luabind 0.9.1版本尝试1. 编译luabind 0.9.1 linux版本需要bjam binary直接copy boost/1.37.0目录中编译好的bjam binary到~/bin目录,然后在luabin根目录中运行bjam编译之前需要设置环境变量BOOST_ROOT=~/mylibs/boost/1.37.0/ 和LUA_PATH=~/mylibs/lua/原创 2014-01-14 12:43:12 · 1769 阅读 · 2 评论