博客园 - linxr
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=133826
2014-06-29T14:17:47Z
linxr
https://www.cnblogs.com/linxr/
feed.cnblogs.com
https://www.cnblogs.com/linxr/p/3815703.html
使用minGW/cygwin在Windows是用于gcc开发 - linxr
刚才记录了下用eclipse在linux下开发,突然想起来也另一种方法:MinGW。MinGW是Windows的gcc开发工具,直接使用Windows的运行库,所以可以在windows下面方便的用gcc进行编译。但是这个方法很有局限,那就是没办法使用Linux下面的系统函数,除非自己的代码不依赖于任...
2014-06-29T14:18:00Z
2014-06-29T14:18:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】刚才记录了下用eclipse在linux下开发,突然想起来也另一种方法:MinGW。MinGW是Windows的gcc开发工具,直接使用Windows的运行库,所以可以在windows下面方便的用gcc进行编译。但是这个方法很有局限,那就是没办法使用Linux下面的系统函数,除非自己的代码不依赖于任... <a href="https://www.cnblogs.com/linxr/p/3815703.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/p/3815685.html
使用eclipse在linux下开发C/C++ - linxr
一直在Linux下开发,苦于没有IDE,一般都是自己编写Makefile,然后在windows下用文本编辑器ftp打开文件编辑,然后在linux下完成编译。调试代码也只能是命令行用gdb进行调试,相当痛苦。现在推荐一个可行的方法:jre +eclipse + Xming + SecureCRT 或 ...
2014-06-29T14:04:00Z
2014-06-29T14:04:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】一直在Linux下开发,苦于没有IDE,一般都是自己编写Makefile,然后在windows下用文本编辑器ftp打开文件编辑,然后在linux下完成编译。调试代码也只能是命令行用gdb进行调试,相当痛苦。现在推荐一个可行的方法:jre +eclipse + Xming + SecureCRT 或 ... <a href="https://www.cnblogs.com/linxr/p/3815685.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/p/3521788.html
神奇的C语言 - linxr
当然下面列出来的几点都是C的基础用法,只不过是这些用法可能平时不会被注意。所以很多东西第一次看到的时候,可能会觉得很怪异,但是细细想想就能很好的理解,也就能更好的清楚C语言的一些特性。但是在具体的编码过程当中,我还是希望都能老老实实规规矩矩的。因为程序员不需要太多棱角,把代码写得规范整洁比耍小聪明要重要得多。下面我列举了5个例子说明一些问题,如果你是老手看到这些就一笑而过吧,如果是新手,我相信还是会得到一些启发的。 1. #和##在宏中的作用,以及带参宏,参数的传递问题。 2. 结构体中域的偏移位置的计算问题。 3. 结构体的定义以及初始化的用法。 4. 数组和指针在运算...
2014-01-15T16:23:00Z
2014-01-15T16:23:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】当然下面列出来的几点都是C的基础用法,只不过是这些用法可能平时不会被注意。所以很多东西第一次看到的时候,可能会觉得很怪异,但是细细想想就能很好的理解,也就能更好的清楚C语言的一些特性。但是在具体的编码过程当中,我还是希望都能老老实实规规矩矩的。因为程序员不需要太多棱角,把代码写得规范整洁比耍小聪明要重要得多。下面我列举了5个例子说明一些问题,如果你是老手看到这些就一笑而过吧,如果是新手,我相信还是会得到一些启发的。 1. #和##在宏中的作用,以及带参宏,参数的传递问题。 2. 结构体中域的偏移位置的计算问题。 3. 结构体的定义以及初始化的用法。 4. 数组和指针在运算... <a href="https://www.cnblogs.com/linxr/p/3521788.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/p/3254905.html
实现代码编辑器 - linxr
上一次曾经发布过一篇如何实现一个代码编辑器。今年工作中得空,所以对这个编辑器进一步做了些更新,把名字改成了从CuteC改成了CEditor。主要是重写了软件的界面(最终还原朴素),重写了编辑控件语法高亮的着色方式,还有增加了一个简单的SSH客户端和SFTP文件编辑的功能。感觉基本的功能已经实现了,所以再次写点东西记录一下。并且发布一下编辑控件的源代码,有兴趣的可下载下来看看,虽然代码写得比较乱。 上个版本:http://www.cnblogs.com/linxr/archive/2011/10/30/2229256.html 编辑控件源码链接:http://files.cnblogs.com.
2013-08-13T04:37:00Z
2013-08-13T04:37:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】上一次曾经发布过一篇如何实现一个代码编辑器。今年工作中得空,所以对这个编辑器进一步做了些更新,把名字改成了从CuteC改成了CEditor。主要是重写了软件的界面(最终还原朴素),重写了编辑控件语法高亮的着色方式,还有增加了一个简单的SSH客户端和SFTP文件编辑的功能。感觉基本的功能已经实现了,所以再次写点东西记录一下。并且发布一下编辑控件的源代码,有兴趣的可下载下来看看,虽然代码写得比较乱。 上个版本:http://www.cnblogs.com/linxr/archive/2011/10/30/2229256.html 编辑控件源码链接:http://files.cnblogs.com. <a href="https://www.cnblogs.com/linxr/p/3254905.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/p/3252541.html
实现了一个简单的key-value存储系统 - linxr
源码下载: kvfs.rar正文: 所谓的Key-Value就是每次存储一个数据时,是根据Key进行索引存储的。为了实现Key的快速查找功能,我使用了B-tree存储结构。B-tree被大量用于数据库的索引中,所以选用B-tree想必不会有太大的问题。Value是对应该Key的值,他的长度是未知的,所以要实现这样一个存储系统,必须要解决从Key值到文件位置的映射关系。问题一:实现文件的"自由"读写问题二:实现BTree问题一:实现文件的"自由"读写。 基本思想:所有内容被存储到一个文件中,文件被划分成同一大小的粒度,可以自由的申请不同的大小空间,可以释放
2013-08-12T04:15:00Z
2013-08-12T04:15:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】源码下载: kvfs.rar正文: 所谓的Key-Value就是每次存储一个数据时,是根据Key进行索引存储的。为了实现Key的快速查找功能,我使用了B-tree存储结构。B-tree被大量用于数据库的索引中,所以选用B-tree想必不会有太大的问题。Value是对应该Key的值,他的长度是未知的,所以要实现这样一个存储系统,必须要解决从Key值到文件位置的映射关系。问题一:实现文件的"自由"读写问题二:实现BTree问题一:实现文件的"自由"读写。 基本思想:所有内容被存储到一个文件中,文件被划分成同一大小的粒度,可以自由的申请不同的大小空间,可以释放 <a href="https://www.cnblogs.com/linxr/p/3252541.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2012/03/15/2398635.html
C语言解释器的实现--让脚本跑起来(六) - linxr
目录:1.脚本的执行要素2.栈的模拟.3.变量在栈中的地址计算4.函数的调用过程5.命令的解析6.C的库函数调用在前面的文章中,我主要讲解了语言的解析部分,最终我们生产了脚本的中间代码。接下来,将是一个最困难的时刻,怎么解析执行中间代码! 执行代码其实是经过一定处理后的中间代码的另外一种表示。正如前面提到的,我们的中间代码是三元组的形式,比如:c = a + b * c; 可以表示成 @1 = b * c; @2 = a + @1; @3 = c = @2;但是,这种中间代码还得经过一定的转换才能更方便我们解析执行。接下来,我将一步步的说明,中间代码被执行的每个过程。1.脚本的执行要素 一个脚
2012-03-15T12:26:00Z
2012-03-15T12:26:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】目录:1.脚本的执行要素2.栈的模拟.3.变量在栈中的地址计算4.函数的调用过程5.命令的解析6.C的库函数调用在前面的文章中,我主要讲解了语言的解析部分,最终我们生产了脚本的中间代码。接下来,将是一个最困难的时刻,怎么解析执行中间代码! 执行代码其实是经过一定处理后的中间代码的另外一种表示。正如前面提到的,我们的中间代码是三元组的形式,比如:c = a + b * c; 可以表示成 @1 = b * c; @2 = a + @1; @3 = c = @2;但是,这种中间代码还得经过一定的转换才能更方便我们解析执行。接下来,我将一步步的说明,中间代码被执行的每个过程。1.脚本的执行要素 一个脚 <a href="https://www.cnblogs.com/linxr/archive/2012/03/15/2398635.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2012/02/19/2357849.html
最近太懒惰了 - linxr
xrc改了一半,回家过年回来就没有继续写下去。最近公司项目仅的很,周六周日也懒得写自己的程序,都睡过去了。以前改得代码又得重新熟悉一下,哎。尽量早点改完吧。太累了,希望能早点写完这个版本。
2012-02-18T18:30:00Z
2012-02-18T18:30:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】xrc改了一半,回家过年回来就没有继续写下去。最近公司项目仅的很,周六周日也懒得写自己的程序,都睡过去了。以前改得代码又得重新熟悉一下,哎。尽量早点改完吧。太累了,希望能早点写完这个版本。 <a href="https://www.cnblogs.com/linxr/archive/2012/02/19/2357849.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2012/01/04/2311627.html
C语言解释器的实现--语法解析(五) - linxr
1.代码块 代码块是由多个表达式组成的一组代码。它可以看成是以下的形式: { exp1 exp2 ... } 它由"{"开始,由"}"结束,中间包含多条表达式,或者是控制语句。如果不是以"{"开始,那么,一个代码块就是一条表达式。在上面的章节,我们已经介绍过了,每个表达式会产生一个中间代码。它是一个链表 struct _code * ,而一个代码块,是由多个表达式组成的,所以我们将每个表达式的中间代码链表连到一起就成了代码块的中间代码了。 如果代码块中包含控制语句,那么,我们必须做一些处理,即在代码链表中插入跳转语句,和跳转位置(La
2012-01-04T02:01:00Z
2012-01-04T02:01:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】1.代码块 代码块是由多个表达式组成的一组代码。它可以看成是以下的形式: { exp1 exp2 ... } 它由"{"开始,由"}"结束,中间包含多条表达式,或者是控制语句。如果不是以"{"开始,那么,一个代码块就是一条表达式。在上面的章节,我们已经介绍过了,每个表达式会产生一个中间代码。它是一个链表 struct _code * ,而一个代码块,是由多个表达式组成的,所以我们将每个表达式的中间代码链表连到一起就成了代码块的中间代码了。 如果代码块中包含控制语句,那么,我们必须做一些处理,即在代码链表中插入跳转语句,和跳转位置(La <a href="https://www.cnblogs.com/linxr/archive/2012/01/04/2311627.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/12/28/2304742.html
C语言解释器的实现--表达式解析(四) - linxr
1. BNF定义2.表达式解析3. 后缀表达式4.后缀表达式到中间代码5.中间代码的表示1. BNF定义 虽然不想多提理论知识,但是有些东西还是避免不了。在解析表达式的时候,我们必须知道它的BNF定义,这样解析起来就非常方便了。所谓的BNF定义,相信大家看一眼就知道了: exp_additive -> exp_multiplicative ( "+"|"-" ) exp_multiplicative exp_multiplicative -> exp_cast ( "*"|"/"|"%&quo
2011-12-28T06:17:00Z
2011-12-28T06:17:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】1. BNF定义2.表达式解析3. 后缀表达式4.后缀表达式到中间代码5.中间代码的表示1. BNF定义 虽然不想多提理论知识,但是有些东西还是避免不了。在解析表达式的时候,我们必须知道它的BNF定义,这样解析起来就非常方便了。所谓的BNF定义,相信大家看一眼就知道了: exp_additive -> exp_multiplicative ( "+"|"-" ) exp_multiplicative exp_multiplicative -> exp_cast ( "*"|"/"|"%&quo <a href="https://www.cnblogs.com/linxr/archive/2011/12/28/2304742.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/12/28/2304350.html
C语言的字符串分割 - linxr
说起来很有意思,自认为对C语言理解得还是比较深刻的。但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动。每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,既累人又容易出错。感概继续学得不够全面啊!这里引用一段strtok用法:The strtok() function returns a pointer to the next "token" instr1, wherestr2contains the delimiters that determine the token. strtok() returnsNULLif no t
2011-12-28T02:16:00Z
2011-12-28T02:16:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】说起来很有意思,自认为对C语言理解得还是比较深刻的。但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动。每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,既累人又容易出错。感概继续学得不够全面啊!这里引用一段strtok用法:The strtok() function returns a pointer to the next "token" instr1, wherestr2contains the delimiters that determine the token. strtok() returnsNULLif no t <a href="https://www.cnblogs.com/linxr/archive/2011/12/28/2304350.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/12/27/2303908.html
C语言解释器的实现--类型解析(三) - linxr
上一篇:C语言解释器的实现--词法分析(二)1.类型的表示 C语言的类型是相当灵活的,除了标准的类型(int char float double long 等等)外,自己根据需求,能定义出无穷的类型。一个具体的例子: int * a[10]; 它表示的意思是: a is ARRAY 0..9 of POINTER to INT 仔细观察它的意思,就会发现,这个类型是其他基本类型按照一定顺序的组合:ARRAY|POINTER|INT。要表示这种形式,链表是最合适不过的了。如下图: (图2.1类型的表示) 还有一些情况,比如结构体类型,那么上述的表示就不大合适了。例如下面的结构体: struct.
2011-12-27T12:44:00Z
2011-12-27T12:44:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】上一篇:C语言解释器的实现--词法分析(二)1.类型的表示 C语言的类型是相当灵活的,除了标准的类型(int char float double long 等等)外,自己根据需求,能定义出无穷的类型。一个具体的例子: int * a[10]; 它表示的意思是: a is ARRAY 0..9 of POINTER to INT 仔细观察它的意思,就会发现,这个类型是其他基本类型按照一定顺序的组合:ARRAY|POINTER|INT。要表示这种形式,链表是最合适不过的了。如下图: (图2.1类型的表示) 还有一些情况,比如结构体类型,那么上述的表示就不大合适了。例如下面的结构体: struct. <a href="https://www.cnblogs.com/linxr/archive/2011/12/27/2303908.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/12/27/2303397.html
C语言解释器的实现--词法分析(二) - linxr
上一篇:C语言解释器的实现--存储结构(一) 词法分析是编译原理中最容易理解的,就算没有了解过编译原理,也能写出一个词法分析器。我们不用理解正则表达式,不用理解状态机原理,就可以轻松的完成词法的分析。 这里首先介绍下自顶向下的解析过程,所谓的自顶向下,按我的理解,就是从一个大的集合解析到小的集合。例如:解析一个文件,那么进入文件,解析一个函数,进入一个函数,解析局部变量,解析表达式,进入表达式,解析变量、常量等等,最终完成一个C文件的解析过程。整个过程,其实就是一个猜测的过程。但是这个过程中,我们必须依赖于文件中的每个词(token),token可以看成是解析过程中的一个单位。 例如: 1..
2011-12-27T05:20:00Z
2011-12-27T05:20:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】上一篇:C语言解释器的实现--存储结构(一) 词法分析是编译原理中最容易理解的,就算没有了解过编译原理,也能写出一个词法分析器。我们不用理解正则表达式,不用理解状态机原理,就可以轻松的完成词法的分析。 这里首先介绍下自顶向下的解析过程,所谓的自顶向下,按我的理解,就是从一个大的集合解析到小的集合。例如:解析一个文件,那么进入文件,解析一个函数,进入一个函数,解析局部变量,解析表达式,进入表达式,解析变量、常量等等,最终完成一个C文件的解析过程。整个过程,其实就是一个猜测的过程。但是这个过程中,我们必须依赖于文件中的每个词(token),token可以看成是解析过程中的一个单位。 例如: 1.. <a href="https://www.cnblogs.com/linxr/archive/2011/12/27/2303397.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/12/16/2290502.html
C语言解释器的实现--存储结构(一) - linxr
上一篇:C语言解释器的实现--序(零)目录: 1. 内存池 2. 栈 3. Hash表1.内存池 在一些小的程序里,没什么必要添加内存管理模块在里面。但是对于比较复杂的代码,如果需要很多的内存操作,那么加入自己的内存管理是有必要的。至少有一些好处:能够加快内存的申请和释放;能够轻松的查找内存泄露问题;能够对整个软件的内存消耗做一个比较精确的统计;对以后的优化有很大的好处等等。所以,在我的解释器里,我加入了一个简单的内存管理模块,仿造了内存池的做法。 主要思想是这样的: a.记录所有的申请的内存 b.当释放内存时,记录下来以供下次申请使用 c.申请内存时,可以直接使用前面释放过的内存 为了达到以
2011-12-16T09:37:00Z
2011-12-16T09:37:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】上一篇:C语言解释器的实现--序(零)目录: 1. 内存池 2. 栈 3. Hash表1.内存池 在一些小的程序里,没什么必要添加内存管理模块在里面。但是对于比较复杂的代码,如果需要很多的内存操作,那么加入自己的内存管理是有必要的。至少有一些好处:能够加快内存的申请和释放;能够轻松的查找内存泄露问题;能够对整个软件的内存消耗做一个比较精确的统计;对以后的优化有很大的好处等等。所以,在我的解释器里,我加入了一个简单的内存管理模块,仿造了内存池的做法。 主要思想是这样的: a.记录所有的申请的内存 b.当释放内存时,记录下来以供下次申请使用 c.申请内存时,可以直接使用前面释放过的内存 为了达到以 <a href="https://www.cnblogs.com/linxr/archive/2011/12/16/2290502.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/12/16/2290474.html
C语言解释器的实现--序(零) - linxr
在写CuteC文本编辑器的同时,为了使之有脚本执行能力。特意实现了一个简易的C语言解释器,所谓的解释器,就是它是解析执行脚本文件的,并不产生可执行的目标代码。它具备了C语言的几乎全部的语法。随着时间的推移,我打算把它作为一个独立的项目来开发了。在这个过程中,自己也学到了不少的知识,所以也打算跟大家分享。写这些东西,虽然是重复发明轮子的事,但也不至于是在浪费生命。程序员嘛,我总觉得应该是要理解我们每天所编译出来的程序是怎么被执行,应该明白我们敲打的每行代码的实际意义。 我打算写一个系列的文章来说明这个解释器的实现过程,其中对于编译原理的理论知识不做太多的讲解,一是不容易提高大家的积极性,二是自.
2011-12-16T09:18:00Z
2011-12-16T09:18:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】在写CuteC文本编辑器的同时,为了使之有脚本执行能力。特意实现了一个简易的C语言解释器,所谓的解释器,就是它是解析执行脚本文件的,并不产生可执行的目标代码。它具备了C语言的几乎全部的语法。随着时间的推移,我打算把它作为一个独立的项目来开发了。在这个过程中,自己也学到了不少的知识,所以也打算跟大家分享。写这些东西,虽然是重复发明轮子的事,但也不至于是在浪费生命。程序员嘛,我总觉得应该是要理解我们每天所编译出来的程序是怎么被执行,应该明白我们敲打的每行代码的实际意义。 我打算写一个系列的文章来说明这个解释器的实现过程,其中对于编译原理的理论知识不做太多的讲解,一是不容易提高大家的积极性,二是自. <a href="https://www.cnblogs.com/linxr/archive/2011/12/16/2290474.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/11/16/2251907.html
最近工作好忙,自己的软件又得落下很长一段时间了~ - linxr
有好多计划,都没时间去做好好深入的学学编译原理,重写设计编写自己的C语言解释器好好完善CuteC Editor等我觉得完善的差不多了,就可以把代码放出来了至少还能写一篇C语言解释器的实现方法供大家看看可惜...加班完,回到家,没什么精神再搞这些东西~
2011-11-16T14:30:00Z
2011-11-16T14:30:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】有好多计划,都没时间去做好好深入的学学编译原理,重写设计编写自己的C语言解释器好好完善CuteC Editor等我觉得完善的差不多了,就可以把代码放出来了至少还能写一篇C语言解释器的实现方法供大家看看可惜...加班完,回到家,没什么精神再搞这些东西~ <a href="https://www.cnblogs.com/linxr/archive/2011/11/16/2251907.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/11/08/2241272.html
给软件添加注册码 - linxr
本文宗旨在于提出一种给软件添加注册码的方法。至于所提出的方法是否有效,是否能够经得起一些逆向高手的破解,还得经过验证。我只是提出我个人的看法。一、目标。 目标很明确,就是根据需要注册软件的个人信息,产生注册码。并且软件本身必须可以校验该注册码是否有效。并且能够防止别人逆向算出校验算法,产生注册机;能够防止别人用暴力破解方法,直接修改软件执行代码,绕过注册。 二、方法论述 要做到以上的目标,有两个方面特别重要。一是,注册码产生算法的选择;二是,要使软件具有自身校验机制,防止可执行程序别篡改。下面我们分别论述这两点。1. 注册码产生算法的选择 现在很多软件都存在注册机,很大原因是因为软件本身的注册
2011-11-08T08:08:00Z
2011-11-08T08:08:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】本文宗旨在于提出一种给软件添加注册码的方法。至于所提出的方法是否有效,是否能够经得起一些逆向高手的破解,还得经过验证。我只是提出我个人的看法。一、目标。 目标很明确,就是根据需要注册软件的个人信息,产生注册码。并且软件本身必须可以校验该注册码是否有效。并且能够防止别人逆向算出校验算法,产生注册机;能够防止别人用暴力破解方法,直接修改软件执行代码,绕过注册。 二、方法论述 要做到以上的目标,有两个方面特别重要。一是,注册码产生算法的选择;二是,要使软件具有自身校验机制,防止可执行程序别篡改。下面我们分别论述这两点。1. 注册码产生算法的选择 现在很多软件都存在注册机,很大原因是因为软件本身的注册 <a href="https://www.cnblogs.com/linxr/archive/2011/11/08/2241272.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/10/30/2229256.html
一个代码编辑器的实现 - linxr
这一年来我花了很多的时间在写一个代码编辑器。大部分时间都是在实现各种各样的功能,其中也遇到了不少的问题。现在把实现这个编辑控件的一些问题的解决方法写出来,以供参考。这里说明下,我用的是MFC,当然了,没有用现成的控件,而是直接从CWnd继承来实现自己的编辑控件。先给大家弄个效果图吧,你可以在这里CuteC Editor下载,欢迎大家提出意见。问题1:如何让控件接受所有的按键和汉字。问题2:如何计算光标的位置。问题3:如何存储编辑控件的文本内容。问题4:如何实现关键字高亮。问题5:如何实现自动换行。问题6:如何解析脚本。呵呵,我自己写了个C语言解释器,那它来用还是很不错的。一. 如何让控件接受.
2011-10-30T05:53:00Z
2011-10-30T05:53:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】这一年来我花了很多的时间在写一个代码编辑器。大部分时间都是在实现各种各样的功能,其中也遇到了不少的问题。现在把实现这个编辑控件的一些问题的解决方法写出来,以供参考。这里说明下,我用的是MFC,当然了,没有用现成的控件,而是直接从CWnd继承来实现自己的编辑控件。先给大家弄个效果图吧,你可以在这里CuteC Editor下载,欢迎大家提出意见。问题1:如何让控件接受所有的按键和汉字。问题2:如何计算光标的位置。问题3:如何存储编辑控件的文本内容。问题4:如何实现关键字高亮。问题5:如何实现自动换行。问题6:如何解析脚本。呵呵,我自己写了个C语言解释器,那它来用还是很不错的。一. 如何让控件接受. <a href="https://www.cnblogs.com/linxr/archive/2011/10/30/2229256.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/10/24/2222687.html
CuteC Editor 更新发布 - linxr
CuteC 下载更新内容:1. 修改了便笺管理界面,添加了加解密功能2. 添加了FTP功能3. 添加了代码的符号显示该软件还在开发过程中,由于个人的时间有限,开发进度受到多方因素的影响,但我将不断的更新完善。希望大家多多支持~命令界面如上。FTP界面如上。符号界面如上。便笺文件界面如上。
2011-10-24T07:01:00Z
2011-10-24T07:01:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】CuteC 下载更新内容:1. 修改了便笺管理界面,添加了加解密功能2. 添加了FTP功能3. 添加了代码的符号显示该软件还在开发过程中,由于个人的时间有限,开发进度受到多方因素的影响,但我将不断的更新完善。希望大家多多支持~命令界面如上。FTP界面如上。符号界面如上。便笺文件界面如上。 <a href="https://www.cnblogs.com/linxr/archive/2011/10/24/2222687.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/10/17/2215303.html
openssl产生自认证证书 - linxr
1. 新建一个ca目录。 mkdir ca 2. 新建一个openssl.cnf文件。内容如下:dir = .[ req ] default_bits = 1024 # Size of keys default_keyfile = key.pem # name of generated keys default_md = md5 # message digest algorithm string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name req_extensions = v
2011-10-17T05:15:00Z
2011-10-17T05:15:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】1. 新建一个ca目录。 mkdir ca 2. 新建一个openssl.cnf文件。内容如下:dir = .[ req ] default_bits = 1024 # Size of keys default_keyfile = key.pem # name of generated keys default_md = md5 # message digest algorithm string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name req_extensions = v <a href="https://www.cnblogs.com/linxr/archive/2011/10/17/2215303.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/linxr/archive/2011/10/17/2215285.html
gsoap使用总结 - linxr
>>用C实现WebService,gsoap是最好的选择了。近一个月都在折腾这个,做个总结吧,估计会写得比较长。因为其中碰到了不少问题,但最终都解决调了。>>快速开始 1. gsoap官网。遇到问题时,官网往往是最能提供帮助的地方。 http://gsoap2.sourceforge.net/ 2. 几个值得参考的链接。 GSoap使用心得: http://www.cppblog.com/qiujian5628/archive/2008/10/11/54019.html GSoap接口定义: http://blog.sina.com.cn/s/blog_5ee9235c
2011-10-17T04:50:00Z
2011-10-17T04:50:00Z
linxr
https://www.cnblogs.com/linxr/
【摘要】>>用C实现WebService,gsoap是最好的选择了。近一个月都在折腾这个,做个总结吧,估计会写得比较长。因为其中碰到了不少问题,但最终都解决调了。>>快速开始 1. gsoap官网。遇到问题时,官网往往是最能提供帮助的地方。 http://gsoap2.sourceforge.net/ 2. 几个值得参考的链接。 GSoap使用心得: http://www.cppblog.com/qiujian5628/archive/2008/10/11/54019.html GSoap接口定义: http://blog.sina.com.cn/s/blog_5ee9235c <a href="https://www.cnblogs.com/linxr/archive/2011/10/17/2215285.html" target="_blank">阅读全文</a>