zyl910

优化技巧、硬件体系、图像处理、图形学、游戏编程、国际化与文本信息处理。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  C10 C系列

1 2 3 4 下一页

C/C++/C#/Java
摘要:作者: zyl910 一、原初 .NET平台很早就提供了条件编译的语法(#if)。 但是当时官方未制定标准的条件编译符号(Conditional compilation symbols)的名称,而是让各程序自行约定。 由于早期只有“.NET Framework”这一种平台,且每次升级都是向下兼容的。 阅读全文
posted @ 2022-04-16 17:19 zyl910 阅读(2654) 评论(0) 推荐(1) 编辑

摘要:作者:zyl910一、说明本工具有适合以下情况使用——* 快速查看数据库中数据及表结构信息。* 测试ADO.Net下连接字符串的写法。* 帮忙分析ADO.Net数据库操作。二、用法运行本程序。在“Provider”下拉框中选择数据提供者工厂。(若没有的话,请尝试在 zdbviewcs.exe.con... 阅读全文
posted @ 2015-08-13 17:00 zyl910 阅读(1332) 评论(0) 推荐(0) 编辑

摘要:作者:zyl910如今,UTF-8字符串的使用频率越来越多了。但是在VC中,不能直接处理UTF-8字符串,得专门去写UTF-8与窄字符串、宽字符串、TCHAR字符串相互转换的代码。不仅费时费力,而且稍不留心就容易造成内存泄露问题。于是我便想专门编写个库来解决UTF-8字符串编码问题。特性——支持 T... 阅读全文
posted @ 2015-07-23 22:41 zyl910 阅读(1641) 评论(0) 推荐(0) 编辑

摘要:作者:zyl910 以前我曾为了让VC++等编译器支持C99的整数类型,便编写了c99int库来智能处理(http://www.cnblogs.com/zyl910/p/c99int_v102.html)。如今为了兼容Turbo C++ 3等DOS下的编译器,做了重大改变,不再适合沿用旧名,于是采... 阅读全文
posted @ 2015-05-17 23:10 zyl910 阅读(1524) 评论(0) 推荐(0) 编辑

摘要:作者:zyl910一、缘由 在写一些生成文本的程序时,经常需要使用带缩进的格式化输出的功能。以前为此写过不少类似的函数,可惜它们的可重用性很差。 这是因为——1) C语言的FILE*不支持重定向到自己的缓冲区。2) C++的流机制允许重定向到自己的流缓冲区。可惜这依赖了C++的专有语法,纯C无法用上。 因为上述原因,以前至少得为C与C++编写两套函数集。如果考虑到char/wchat_t/TCHAR,函数集会变得更加臃肿。 于是我决定编写一套“能以相同的代码绑定到 C FILE 或 C++流”的带缩进的格式化输出库。zltabout就是该想法的成果。二、C范例Step 1 定义 ZLT... 阅读全文
posted @ 2013-08-23 23:31 zyl910 阅读(1228) 评论(0) 推荐(0) 编辑

摘要:作者:zyl910 v1.1版的改动如下——将源码上传到github.调整目录结构.添加CMake编译配置文件.使用doxygen规范注释. 文件清单——docs\docs\images\docs\images\examples_tcharall.pngexamples\examples\tcharall\examples\tcharall\makefileexamples\tcharall\tcharall.cexamples\tcharall\tcharall_2003.slnexamples\tcharall\tcharall_2003.vcprojexamples\tcharall.. 阅读全文
posted @ 2013-08-16 21:41 zyl910 阅读(789) 评论(0) 推荐(0) 编辑

摘要:新版本——http://www.cnblogs.com/zyl910/p/zlstdint_v100.html[C] zlstdint(让VC、TC等编译器自动兼容C99的整数类型)V1.0。支持Turbo C++ 3等DOS下的编译器作者:zyl910一、改动简介 V1.02版的改动如下——将源... 阅读全文
posted @ 2013-07-31 23:58 zyl910 阅读(2383) 评论(0) 推荐(0) 编辑

摘要:作者:zyl910 现在比较流行使用侧开菜单设计。试了不少控件,感觉GHSidebarNav最成熟,尤其对纯代码创建的界面兼容性最好。但若想使Storyboard界面也支持该控件,该怎么做呢。于是我做了一番研究。 系统环境——Mac OS X Lion 10.7.5Xcode 4.6.2一、功能需求 对于实际项目中使用侧开菜单,有以下功能需求——1. 非启动。程序启动时位于登陆页面,点击“登录”才进入主页。2. 点击弹出菜单。点击主页中左上角的按钮,打开左侧的菜单列表。3. 菜单操作。点击左侧菜单列表中(除“注销”之外)的项目,会对内容页面进行切换。但点击“注销”时,会全部退出,回到登录... 阅读全文
posted @ 2013-06-14 23:02 zyl910 阅读(8327) 评论(1) 推荐(2) 编辑

摘要:作者:zyl910 在iOS开发时,有时候需要在UIToolBar中增加UILabel等控件。见过很多资料是以代码方式完成此功能,不易维护。于是我进行了一番摸索,找到了xib/storyboard图形界面下的处理办法。一、代码方式 代码方式是很多资料上提到的,关键是利用UIBarButtonItem的initWithCustomView方法来绑定UILabel控件。代码如下——UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40.0f, 20.0f, 45.0f, 10.0f)]; myLabel.font=[UI... 阅读全文
posted @ 2013-04-26 15:10 zyl910 阅读(2065) 评论(0) 推荐(0) 编辑

摘要:作者:zyl910 “点击空白处隐藏软键盘”是一个很常见的功能。最简单的实现办法是将背景View设为为UIControl类,然后在Touch Down事件中隐藏软键盘。详见 http://www.cnblogs.com/zyl910/archive/2013/03/29/ios_textfield_keyboard.html。 但是当文本框放在UIScrollView控件中时,上述方法就失效了。UIScrollView本身没有提供触摸事件,但它会拦截触摸操作,使背景View无法收到触摸事件。 该怎么办呢? 曾在网络上找到过一个解决方案——写UIScrollView的派生类,提供触摸事件... 阅读全文
posted @ 2013-04-17 19:03 zyl910 阅读(2777) 评论(1) 推荐(1) 编辑

摘要:作者:zyl910一、背景 现在很多常用的UML工具不支持Objective-C,在绘制UML时很不方便。得手工将Objective-C语法的参数列表,转为UML语法或C++语法。比较费力且容易出错。 于是我想编写一个工具,自动的将Objective-C语法的参数列表转为UML或C++语法。 用什么语言开发呢? 为了跨平台,我决定采用JavaScript来编写该工具。 现在只是一个字符串分析与生成的小工具,JavaScript足以胜任。二、功能设计 界面如下—— 基本使用方法——1. 在“源参数列表”填写Objective-C方法的声明;2. 点击“转换”按钮,UML与C++文本... 阅读全文
posted @ 2013-04-16 11:21 zyl910 阅读(559) 评论(0) 推荐(0) 编辑

摘要:作者:zyl910 关于隐藏软键盘,网上的办法良莠不齐,大多是通过实现UITextFieldDelegate来隐藏软键盘,该方法代码较多,且在文本框很多的时不好处理。我经过搜索与摸索,找到了最佳的处理办法。一、隐藏自身软键盘 当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。 该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)——- (IBAction)TextField_DidEndOnExi... 阅读全文
posted @ 2013-03-29 18:08 zyl910 阅读(12273) 评论(1) 推荐(4) 编辑

摘要:作者:zyl910 前面测试了各种编译器的执行结果,但为什么它们的执行结果是那样呢?这需要仔细分析。VC2005的测试结果比较典型,而且调试跟踪比较方便,于是本篇对VC2005的crt源码进行分析。一、须知 开发工具是VC2005,平台为32位的x86,编译模式为Debug,使用MBCS字符集。二、cout输出窄字符串2.1 已初始化locale “已初始化locale”是指——在输出前执行了初始化locale,即执行了下列语句—— // init. locale::global(locale("")); wcout.imbue(locale("")); 阅读全文
posted @ 2013-01-22 21:13 zyl910 阅读(4917) 评论(0) 推荐(0) 编辑

摘要:作者:zyl910 C++标准为C++标准IO库设计了十分完善的国际化文本处理机制。但在实际使用中,却发现各种编译器对它的支持性存在较大的差异,很多时候无法正确的输出字符。于是我对此进行了深入的调查。一、说明1.1 测试程序 下面有一段很简单的程序,分别利用cout、wcout、printf输出字符串。具体代码为——#include <stdio.h>#include <locale.h>#include <wchar.h>#include <string>#include <iostream>using namespace std; 阅读全文
posted @ 2013-01-20 11:35 zyl910 阅读(37828) 评论(2) 推荐(5) 编辑

摘要:作者:zyl910 将Windows程序移植到Linux等平台时,经常会遇到tchar.h问题与字符串的格式控制字符问题(char串、wchar_t串、TCHAR串混合输出)。本文探讨如何解决这些问题。一、背景1.1 历史 传统的C程序使用char字符串,采用ANSI+DBCS方案来支持当地语言,不能实现多国语言同时显示。 当年微软在设计Windows NT时考虑到国际化,决定内核支持Unicode,对应wchar_t类型。那时的Unicode只有16位,于是Windows中的wchar_t是16位的。 为了兼容老程序,与字符串有关的API一般有两套——A结尾的表示是ANSI版,使用c... 阅读全文
posted @ 2013-01-17 16:40 zyl910 阅读(20354) 评论(5) 推荐(7) 编辑

摘要:作者:zyl910 用VC2012编译了一个程序,在Windows 8、Windows 7、Windows Vista下都能正常运行。但在Windows XP下运行时,却报错不能运行,具体错误信息为“指定的可执行文件不是有效的 Win32 应用程序”。 在WinXP中装好“Visual C++ Redistributable for Visual Studio 2012 Update 1”。但该程序还是无法运行,仍是报告上述错误。 用eXeScope打开该exe,发现操作系统需求为“6.0”,即只能在Windows Vista或更高的操作系统下运行。 我的VS2012已经升级为“Vis... 阅读全文
posted @ 2013-01-13 21:41 zyl910 阅读(7058) 评论(3) 推荐(1) 编辑

摘要:作者:zyl910 以前我曾为了让VC++等编译器支持C99的整数类型,编写了同名的stdint.h、inttypes.h来智能处理(http://www.cnblogs.com/zyl910/archive/2012/08/08/c99int.html)。现在将其升级到v1.01版。一、改动说明1.1 包含目录问题 在1.00版,我编写的头文件与系统头文件同名,利用“#include "XXX"”与“#include <XXX>”的区别,使其智能使用系统头文件。 这样做的优点是基本不需改动代码(只需将“#include <stdint.h>”改为“ 阅读全文
posted @ 2013-01-10 22:50 zyl910 阅读(3501) 评论(4) 推荐(0) 编辑

摘要:作者:zyl910。一、更新说明1.1 支持VC2012 VC2012增加了很多Intrinsics函数,详见——http://www.cnblogs.com/zyl910/archive/2012/11/06/intrin_vc2012.html检查了一下VC2012新增的Intrinsics函数集,发现它支持ARM指令和Haswell新指令 根据上述信息改进zintrin,检测到是VC2012时定义相关的宏—— #if _MSC_VER >=1700 // VC2012 #define INTRIN_AVX2 1 // immint... 阅读全文
posted @ 2012-11-07 22:18 zyl910 阅读(2299) 评论(1) 推荐(2) 编辑

摘要:作者:zyl910 之前我整理了一份VC6至VC2010中Intrinsics函数集对应表。现在VS2012发布了,它有没有增加Intrinsics函数集呢?于是我对此进行检查。 若是64位win8系统中默认安装的VS2012,Intrinsics头文件位于“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include”目录。 首先发现多了两个Intrinsics头文件——armintr.h:ARM的常用指令集。arm_neon.h:ARM的neon指令集。 看了一下intrin.h,发现以前大段的ARM Intrinsi... 阅读全文
posted @ 2012-11-06 22:49 zyl910 阅读(4764) 评论(0) 推荐(1) 编辑

摘要:一、popcnt指令简介 popcnt是“population count”的缩写,该操作一般翻译为“位1计数”,即统计有多少个“为1的位”。例如,十六进制数“FF”,它有8个为1的位,即“popcnt(0xFF) = 8”。popcnt主要应用在密码学与通信安全,例如计算汉明重量(Hamming weight)。 x86体系最初是没有硬件popcnt指令的,只能靠软件计算。 2008年底,Intel发布了Nehalem架构的处理器,增加了SSE4.2指令集,其中就有硬件popcnt指令。虽然它名义上是属于SSE4.2指令集,但它并不使用XMM寄存器(SSE的128位寄存器),而是使用G... 阅读全文
posted @ 2012-11-02 23:00 zyl910 阅读(11188) 评论(0) 推荐(4) 编辑

1 2 3 4 下一页