zyl910

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

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

随笔分类 -  --- My_原创

上一页 1 2 3 4 5 6 7 8 9 下一页

摘要:作者:zyl910一、缘由 这几天win8发布了,我也想体验一下win8。可以我用的是笔记本电脑硬盘容量有限,里面已经装好了winXP/7双系统及大量开发工具,无论是全新安装还是升级安装都不太合适。于是我想将win8装在U盘里。 于是上网搜索一下,发现Windows To Go功能可以满足我的要求。但是很奇怪,网上的文章写得很复杂,需要命令行分区,还需要提取镜像等操作——http://tu.pcpop.com/all-769619.htm系统瞬间变win8 制作windows to go盘 我思考了一下,其实步骤完全没必要那么复杂,例如——1.无需用命令行分区。格式化可用Windows自... 阅读全文
posted @ 2012-10-28 22:21 zyl910 阅读(5518) 评论(5) 推荐(0)

摘要:作者:zyl910。 本文面对对SSE等SIMD指令集有一定基础的读者,以32位整数数组求和为例演示了如何跨平台使用MMX、SSE2指令集。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、关键讲解 前文(http://www.cnblogs.com/zyl910/archive/2012/10/22/simdsumfloat.html)演示了如何使用SSE、AVX指令集 处理 单精度浮点数组求和。现在对其进行改造,使用MMX、SSE2指令集 处理 32位整数数组求和。因程序基本上差不多,文本就不详细讲解了,只说关键变化。1.1 指令集简介 先来看看支... 阅读全文
posted @ 2012-10-26 21:24 zyl910 阅读(4267) 评论(0) 推荐(0)

摘要:作者:zyl910。 本文面对对SSE等SIMD指令集有一定基础的读者,以双精度浮点数组求和为例演示了如何跨平台使用SSE2、AVX指令集。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、关键讲解 前文(http://www.cnblogs.com/zyl910/archive/2012/10/22/simdsumfloat.html)演示了如何使用SSE、AVX指令集 处理 单精度浮点数组求和。现在对其进行改造,使用SSE2、AVX指令集 处理 双精度浮点数组求和。因程序基本上差不多,文本就不详细讲解了,只说关键变化。1.1 指令集简介 先来看看支... 阅读全文
posted @ 2012-10-26 17:49 zyl910 阅读(3973) 评论(0) 推荐(0)

摘要:作者:zyl910。 本文面对对SSE等SIMD指令集有一定基础的读者,以单精度浮点数组求和为例演示了如何跨平台使用SSE、AVX指令集。因使用了stdint、zintrin、ccpuid这三个模块,可以完全避免手工编写汇编代码,具有很高可移植性。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、问题背景 最初,我们只能使用汇编语言来编写SIMD代码。不仅写起来很麻烦,而且易读性、可维护性、移植性都较差。 不久,VC、GCC等编译器相继支持了Intrinsic函数,使我们可以摆脱汇编,利用C语言来调用SIMD指令集,大大提高了易读性和可维护。而且移植性... 阅读全文
posted @ 2012-10-22 22:12 zyl910 阅读(22475) 评论(5) 推荐(5)

摘要:作者:zyl910。 之前的ccpuid V1.02的mmx/sse指令可用性检查存在缺陷。现在的V1.03版改进了mmx/sse指令可用性检查,使用signal、setjmp,能够支持纯C程序。修正了AVX检查Bug。增加多文件链接ccpuid的测试例程。一、更新说明1.1 改进mmx/sse指令可用性检查1.1.1 问题背景 以前是使用结构化异常处理来确认当前环境是否能运行mmx/sse指令的。该方法存在两个问题。 首先,仅有C++支持结构化异常处理,而纯C是不支持的。所以在V1.02版中,是根据__cplusplus宏来做条件编译的。造成仅有C++版支持指令可用性检查,而纯C版没有... 阅读全文
posted @ 2012-10-13 00:01 zyl910 阅读(5000) 评论(1) 推荐(2)

摘要:新版本——http://www.cnblogs.com/zyl910/archive/2012/11/07/zintrin_v102.html[C] zintrin.h: 智能引入intrinsic函数 V1.02版。支持VC2012,增加INTRIN_ALIGN、INTRIN_COMPILER_NAME宏作者:zyl910。 之前的zintrin V1.00版对Mac OS X平台支持性不佳。现在的V1.01版改进对Mac OS X的支持,还做了这些改进——增加INTRIN_WORDSIZE宏 等。一、更新说明1.1 改进对Mac OS X的支持 前几天在使用Xcode时,发现mac下也.. 阅读全文
posted @ 2012-10-01 23:18 zyl910 阅读(3787) 评论(0) 推荐(0)

摘要:新版本——http://www.cnblogs.com/zyl910/archive/2012/10/13/ccpuid_v103.html作者:zyl910。 之前的ccpuid V1.01版只支持Windows和Linux平台。现在的V1.02版增加对Mac OS X平台的支持,还做了这些改进——支持纯C、增加CPUF常数、x86平台判断。一、更新说明1.1 支持Mac OS X平台 之前我发现了Mac OS X中的“/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/li.. 阅读全文
posted @ 2012-09-29 23:34 zyl910 阅读(8737) 评论(0) 推荐(0)

摘要:作者:zyl910 前段时间我尝试用Finder的搜索功能查找intrin头文件,可惜没有找到,于是误以为Mac OS X的llvm-gcc不支持intrin函数。 今天在使用Xcode时,发现它是支持的,intrin头文件位于“/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/4.0/include”目录中。 搜索不到文件,可能是因为“/Applications/Xcode.app”并不是普通的目录。 在Finder中定位到“应用程序”目录,如果双击... 阅读全文
posted @ 2012-09-27 18:28 zyl910 阅读(1279) 评论(0) 推荐(0)

摘要:作者:zyl910。 这是一个小工具,枚举ActiveX控件的 CLSID 和 implemented/required CATIDs。可用来帮助分析ActiveX控件部署问题。一、代码 全部代码——View Code #include <stddef.h>#include <stdio.h>#include <tchar.h>#include <locale.h> #include <Windows.h>#include <crtdbg.h>#include <comcat.h>#include <at 阅读全文
posted @ 2012-09-25 16:44 zyl910 阅读(1436) 评论(0) 推荐(0)

摘要:新版本——http://www.cnblogs.com/zyl910/archive/2012/10/01/zintrin_v101.html作者:zyl910。 现在很多编译器支持intrinsic函数,这给编写SSE等SIMD代码带来了方便。但是各个编译器略有差异,于是我编写了zintrin.h,智能引入intrinsic函数。一、各种编译器的区别1.1 Visual C++(Windows) 最早支持intrinsic函数的VC编译器是VC 6.0。它在装上Visual Studio 6.0 Service Pack 5、Visual C++ 6.0 Processor Pack这两.. 阅读全文
posted @ 2012-09-23 23:09 zyl910 阅读(3784) 评论(0) 推荐(1)

摘要:作者:zyl910。 这几天在调试一个使用Http POST协议的接口。在网上找了几个Http测试工具,但感觉不太好用。于是自己用C#写了一个简单的测试工具。一、使用介绍 默认是“POST”模式。在最上面的文本框中输入Url地址,然后在“Post Data”文本框中输入Post参数,再点击“Go”按钮发送请求。 如果想使用“GET”模式。便点击左上角的组合框,选择“GET”模式,再点击“Go”按钮发送请求。 当发现回应内容乱码时。点击“Response Encoding”组合框,选择合适的编码。再点击“Go”按钮重新发送请求。二、全部代码 窗口的代码(FrmTestHttpPost.... 阅读全文
posted @ 2012-09-19 23:47 zyl910 阅读(35543) 评论(11) 推荐(3)

摘要:作者:zyl910。折腾了好几天,终于在Mac OS X Lion 10.7.4上装好GTK+了。其中走了不少弯路,于是将经验教训总结了一下。一、系统环境(OS X与XCode) 操作系统:Mac OS X Lion 10.7.4(11E53) 编程工具:Xcode 4.4.1(1448),并装好了它的“Command Line Tools”。 安装过程可参考这些帖子——在virtualbox上安装Mac OS X Lion 之 配置过程http://www.crifan.com/install_mac_os_x_lion_on_virtualbox_config_process/给Vi... 阅读全文
posted @ 2012-09-14 22:35 zyl910 阅读(11269) 评论(0) 推荐(1)

摘要:作者:zyl910。列名解释——GCC470:GCC 4.7.0 (Fedora 17)。/usr/lib/gcc/i686-redhat-linux/4.7.0/include/。GCC462:GCC 4.6.2 (MinGW)。\lib\gcc\mingw32\4.6.2\include。宏:判断该指令集是否启用的宏。参数:启用该指令集的命令行参数。描述:指令集描述。 GCC470GCC462宏参数描述abmintrin.h__ABM__-mabmABM: Advanced Bit Manipulation. 改为lzcntintrin.h.ammintrin.hammintrin.h.. 阅读全文
posted @ 2012-08-27 22:45 zyl910 阅读(11692) 评论(1) 推荐(1)

摘要:作者:zyl910。 之前的ccpuid V1.00版(http://www.cnblogs.com/zyl910/archive/2012/07/11/ccpuid.html)只支持VC。 现在的V1.01版支持GCC,不仅兼容32位/64位Linux下的GCC,还兼容Windows下的MinGW、MinGW-w64、TDM-GCC等。可以自由的编译为Windows下、或Linux下的程序。一、更新说明 主要的改进有——1. 支持GCC。2. 使用getcpuid/getcpuidex函数来获取CPUID信息。3. 使用C99标准整数类型uint32_t,提高可移植性。二、全部代码2.... 阅读全文
posted @ 2012-08-22 23:01 zyl910 阅读(4427) 评论(0) 推荐(1)

摘要:Gunpowder Magazine and Firecracker Workshop (火药库与爆竹坊){Rule} Steel technology found [ICON_RES_COAL] Coal. (获得炼钢科技时发现煤矿){New Building} Gunpowder Magazine(火药库): +15% [ICON_PRODUCTION] Production when building Gunpowder/Siege Units. Each source of [ICON_RES_COAL] Coal worked by this City produce +1 [ICO 阅读全文
posted @ 2012-08-16 23:16 zyl910 阅读(1388) 评论(0) 推荐(1)

摘要:作者:zyl910 为了适应现在越来越流行的64位系统,经常需要将代码分别编译为32位版和64位版。其次,除了需要生成debug版用于开发测试外,还需要生成release版用于发布。本文介绍了如何利用makefile条件编译来生成这些版本,而且不仅兼容Linux下的GCC,还支持MinGW、TDM-GCC等Windows下的GCC编译器。一、C程序代码 为了测试条件编译的效果,以下面这个C语言程序为例(gcc64_make.c)——#include <stdio.h>#include <assert.h>// 获取程序位数(被编译为多少位的代码)int GetProgr 阅读全文
posted @ 2012-08-14 16:05 zyl910 阅读(88970) 评论(3) 推荐(7)

摘要:新版本——http://www.cnblogs.com/zyl910/archive/2013/01/10/c99int_v101.html[C] 让VC支持C99的整数类型V1.01。避免包含目录问题,更名auto_stdint.h、auto_inttypes.h(在VC6至VC2012、GCC、BCB等编译器下测试通过)作者:zyl910 C99标准定义了stdint.h、inttypes.h,用于统一的跨平台数据定义。可惜VC、BCB等编译器对C99的兼容性较差,有些版本没有该头文件。本文对此进行探讨,编写了一套兼容VC、BCB、GCC的stdint.h、inttypes.h。一、心得. 阅读全文
posted @ 2012-08-08 22:49 zyl910 阅读(20672) 评论(4) 推荐(5)

摘要:作者:zyl910 前面我们尝试过在VC中获取CPUID信息。现在再来试试GCC编译器。一、调用CPUID指令 怎么调用CPUID指令呢?有三种办法——1. 用汇编语言编写一个cpuid函数,然后调整链接器配置,在C语言中调用该函数。2. 使用内嵌汇编调用CPUID指令。3. 使用编译器提供的Intrinsics函数来调用CPUID等特定平台指令。 我们一般优先使用第3种办法,代码量少、可读性高、编译维护简单。例如VC(VC2005或更高)在“intrin.h”中声明了 __cpuid函数。 当编译器没有提供Intrinsics函数时,就只有使用前两种办法了。1.1 查找函数 首先,... 阅读全文
posted @ 2012-08-06 16:17 zyl910 阅读(18110) 评论(0) 推荐(2)

摘要:Game Speed Packet(游戏速度模式大补包)Only Visable in Advanced Menu, you can switch back to Standard Menu after choosing.(仅在高级设置界面可见,您可以选择后再点击“后退”回到标准设置界面。)x2 : GAMESPEED_STANDARD * 2. 1000 turns.x2.5: GAMESPEED_STANDARD * 2.5. 1250 turns.x4 : GAMESPEED_STANDARD * 4. 2000 turns.x5 : GAMESPEED_STANDARD * 5. 25 阅读全文
posted @ 2012-08-02 23:51 zyl910 阅读(1967) 评论(0) 推荐(0)

摘要:作者:zyl910 在编写跨平台的程序时,我们经常使用预定义宏来检测编译环境。虽然编译器的手册中有预处理宏的介绍,但是不够详细,而且还有很多宏没有介绍。于是,我编写了一个小程序,显示常见C/C++编译器的编译器的预定义宏。一、心得 最直接的办法是逐个逐个的用#ifdef判断宏是否存在,然后再printf显示其内容。可是预定义宏有些是整数、有些是字符串,还有些是关键字不能直接用printf输出,用起来挺麻烦的。 在网上发现一种不错办法,出自《关于CPP的预定义宏:unix、linux、i386、i586,大家中过招吗?》4楼“太平绅士”——View Code #include <stdio 阅读全文
posted @ 2012-08-02 18:24 zyl910 阅读(12379) 评论(0) 推荐(3)

上一页 1 2 3 4 5 6 7 8 9 下一页