0%

Scintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成 (code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。

上一篇文章介绍了Scintilla的基本应用,这里继续学习Scintilla更多的控制命令和实现细节,完善我们的编辑器

阅读全文 »

Scintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成 (code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。
可以从这里下载Scintilla库:https://www.scintilla.org/ScintillaDownload.html

另外,Scintilla的作者为了演示,编写了一个叫SciTE的演示程序。不过这个程序的功能已经强大到足以作为我们的常用代码编辑器,很值得下载下来学习学习

阅读全文 »

经常会有生成Excel文件的需求,用C++生成Excel报表比较简单的方法是用MSOFFICE的OLE实现,这种兼容性最好,而且网上容易找到解决方案。但是这种方案要求电脑上装有MS Office软件,运行速度不高。

另一种方案就是直接读写EXCEL文件,感谢开源,我们可以找到不少读写EXCEL的库。XLNT是其中一个功能比较完整的C++开源库,基地在此:https://github.com/tfussell/xlnt

阅读全文 »

最近在研究7zip的LZMA SDK,虽然很久以前曾在本站写过LZMA SDK的简单介绍,不过当时只是走马观花地扫了一下,这次由于一个项目需要,不得不仔细研究了一把。不知道7zip的那帮弟兄太忙还是不喜欢写使用手册, 翻遍整个SDK也没找到一份完整的使用说明,只有两个可怜的7zC.txt和lzma.txt可以参考,真是郁闷-_-

阅读全文 »

Lua是一个嵌入式的脚本语言,它不仅可以单独使用还能与其它语言混合调用。

Lua与其它脚本语言相比,其突出优势在于:

  1. 可扩展性。Lua的扩展性非常卓越,以至于很多人把Lua用作搭建领域语言的工具(注:比如游戏脚本)。Lua被设计为易于扩展的,可以通过Lua代码或者 C代码扩展,Lua的很多功能都是通过外部库来扩展的。Lua很容易与C/C++、java、fortran、Smalltalk、Ada,以及其他语言接口。
  2. 简单。Lua本身简单,小巧;内容少但功能强大,这使得Lua易于学习,很容易实现一些小的应用。他的完全发布版(代码、手册以及某些平台的二进制文件)仅用一张软盘就可以装得下。
  3. 高效率。Lua有很高的执行效率,统计表明Lua是目前平均效率最高的脚本语言。
  4. 与平台无关。Lua几乎可以运行在所有我们听说过的系统上,如NextStep、OS/2、PlayStation II (Sony)、Mac OS-9、OS X、BeOS、MS-DOS、IBM mainframes、EPOC、PalmOS、MCF5206eLITE Evaluation Board、RISC OS,及所有的Windows和Unix。Lua不是通过使用条件编译实现平台无关,而是完全使用ANSI (ISO) C,这意味着只要你有ANSI C编译器你就可以编译并使用Lua。
    阅读全文 »

FireBird是一种小巧的关系型数据库,它有多种版本,包括服务器版(像MySQL),单机版(像Access)以及嵌入式(像SQLite)。而且不管是服务器版还是嵌入式版它都完整支持视图、触发器、存储过程等SQL高级特性。

问题是它提供的C API “不太友好”,不容易掌握(特别是我),所以我一直只会在C++Builder里编程使用FireBird(因为FireBird源于Borland的InterBase,VCL库自带了InterBase的组件),直到有一天我发现了IBPP…

阅读全文 »

对于C++中的每一种技术或特性都不是万金油,它们在某些情况下使用是合理的,而在另一些情况下则不是。知道什么时候应用这些特性是合理的通常不会太难,但是本章涵盖了两个例外:一个是按值传递参数, 一个是置入。

关于何时使用它们受到许多因素的影响,尽管如此,它们都是现代C++编程的重要部分,下面的条目提供了您需要的信息,以确定使用它们是否适合您的代码。

阅读全文 »

C++11的伟大成就之一是将并发性合并到语言和库中。熟悉其他线程API(如pthreadsWindows threads)的程序员有时会对C++提供的相对简单的特性集感到惊讶,那是因为C++对并发性的大量支持是以对编译器的约束的形式出现的。由此产生的语言保证意味着,在C++的历史上,程序员首次可以编写具有跨所有平台的标准行为的多线程程序。

在下面的条目中,要记住标准库有两个future模板:std::futurestd::shared_future。在很多情况下,这种区别并不重要,所以下面说到的feature同时指的这两种。

阅读全文 »