自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (5)
  • 论坛 (27)
  • 收藏
  • 关注

原创 利用Windows域让客户端“0”配置

 利用Windows域让客户端“0”配置 Lewolf关键字:C/S、Windows域、活动目录、域用户、客户端“0”配置提要:本文主要通过Windows域用户集成的方式使C/S结构的客户端程序做到零配置,减少客户端配置是提高客户端灵活性,方便性的一个重要举措,同时又要保证整个系统的安全性、可靠性。正文:在C/S结构的系统应用中,客户端不可避免的需要进行配置,来完成相关

2003-07-22 23:20:00 2529

Delphi XE2的OpenCL控件(可以象TQuery一样使用OpenCL)

这是一个基于Delphi XE2的OpenCL控件。其中使用到了Khronos Group Inc.的CL.pas单元。 OpenCL的设计思路和OpenGL类似,对于大部分Delphi的设计者来说,非常不习惯,而且使用起来并不十分方便 设计这个TOpenCL控件的目的不是替代OpenCL的原生使用方式,而是为了开发者能够快速对OpenCL进行应用并且可以 用来测试性能和功能。 使用TOpenCL控件,可以象使用数据库控件那样方便的去调用OpenCL程序,不需要太多代码就可以运行一个OpenCL 的Kernel。这对于学习和深入研究OpenCL的性能有一个很好的铺垫。 使用OpenCL做并行计算的一个主要因素就是提高大数据量计算的速度,这和通常的业务处理类程序大不相同,因 此提升OpenCL的运行效率是至关重要的,本控件附带的Demo程序中,是对两个长度分别为8192和32的float数组,进行 一维卷积计算的。在选择不同的数据传递方式(如使用显存还是Host内存、使用只读方式还是可读写或者只写方式), 或者不同的Device(如在多核CPU上和GPU上运行Kernel程序)上运行,其效率相差是非常大的。 Demo程序中缺省的使用不显示获取结果的方式运行,缺省的数据传输是使用显存(CPU作为Device的时候,其实还 是系统内存)并Copy数据的方式,因此显示结果始终是0。当输出的参数传递方式改为直接使用系统内存指针的方式时, 不使用显示获取计算结果则是可以得到运算结果的。这些参数之间的差异,读者自行测试并仔细体会,通过调整,相信 可以得到最佳的运行方式。 Demo中包含了四个Kernel函数,分别是Convolution_Kernel_With_Barrier。这是一个带有同步函数Barrier的卷积 过程,并在卷积完成后,等待所有单元计算完毕,然后对结果进行微分(差商)处理,实际情况表明Barrier函数对GPU 的影响甚微,但如果使用CPU作为Device计算,则效率影响非常大,其耗时几乎和单核计算不相上下,估计是同步函数 在等候的过程中,引起了CPU对Catch竞争访问的结果吧。对这种情况,反倒不如拆分成两个Kernel进行单独计算,其累 积的计算时间基本上为两个独立Kernel耗时只和。 Differ_Kernel是单独进行微分计算的,是为了验证上面计算耗时结果的。 Convolution_Kernel是只进行卷积计算的,可以认为和Differ_Kernel前后执行,其结果应该和Convolution_Kerne- l_With_Barrier单独执行是一样的。 Convolution则是一个简单的计算过程,用来测试启动Kernel、等候数据等操作会占用的时间情况的。 OpenCL其实并不是想象中那么美妙,也不是想象中的那么复杂,但要使用好OpenCL,就必须认真的对待每个细节, 甚至到每一个函数调用或者if控制等,大家可以参考“http://hi.baidu.com/fsword73”,上面涉及到的很多方面,都是 可以提升Kernel运行效率的。 目前这个TOpenCL控件只是作者为了测试OpenCL运行效率编写的一个小的工具,作为一个测试工具或者技术积累阶段 的工具足矣,但在实际工程中,希望还是能够尽可能使用原生的调用方式,控件模式势必会带来一定的性能损失的,这是 无法克服的是一个实际情况,对于某些流式数据处理的计算而言,多次重复使用同一个Kernel对流式数据进行处理的,则 使用本控件应该不会造成太大的性能影响。 目前TOpenCL不支持多个Device同时工作,可以选择CPU、GPU或者APU作为首选设备, X86下运行正常,X64下运行仍有 问题,疑和cl.pas中对context等处理的方式不支持X64或者其他原因。 目前支持的OpenCL版本为1.2。控件没有考虑OpenCL和OpenGL协同工作的情况,需要做这方面应用或者测试的读者,请 自行处理。 一下是控件几个主要类的引用关系图。供参考。 由于时间的关系,不可能提供详细的使用说明,往谅解,有问题可邮件与作者联系或者QQ联系。 Mail:18909181984@189.cn QQ:57440981 TOpenCL --| | |--TclKernels --| |--- TclKernel --| | |-- TclKernelParams--| | |--- TclKernelParam | |--- TclKernelParam | |--- TclKernelParam | . | . |--- TclKernel --| | |-- TclKernelParams--| | |--- TclKernelParam | |--- TclKernelParam | |--- TclKernelParam . . . . . .

2014-01-09

Maoinfo交互格式电子地图演示程序

这是使用EAD XE2 for Delphi编写的一个电子地图的程序,程序中使用了CrazyMap控件(XE2编写)和TObjInspector控件(亦为XE2编写的),大部分显示的功能都在控件内部实现。支持X64和X86两种目标代码。 CrazyMap采用多种优化措施,如缓存、动态抽稀等技术来提高电子地图的显示速度,可以获取比MapInfo和AutoCAD更高的显示速度。 CrazyMap并不是用来编辑或者创建地图数据的,而是给程序设计人员来编写适合用户操作的GIS系统的,因此注重用户的使用感受,尽可能的提高显示效率,并且提供适当的接口来实现用户数据的地图信息绘制工作。 TObjInspector并不是网络上可以见到的那个同名的控件,而是使用XE2中最新的RTTI功能实现的更强大的属性编辑器,TObjInspector可以获取publish、public、protected和private类型的属性信息,并且可以获取普通字段数据Field,而并不局限于冠以property关键字的属性。数据类型中支持普通TObject派生的对象和Record类型的数据,并且可以支持Array和动态Array的数据类型。TObjInspector提供了几种独立的属性编辑器,用来编辑不同数据类型的属性,并且可以通过用户接口实现用户定义类型的编辑。Array和动态Array的元素类型可以是任何Delphi支持的类型,如基本类型、Class、record和其他用户定义的类型。TObjInspector支持由事件创建可知性的Script脚本,脚本可以与宿主程序交互运行。 本程序中是针对TCrazyMap做的示范程序,相关TObjInspector的功能演示并不包含在内,只是使用ObjInspector对CrazyMap进行观察而已。 本程序中没有使用任何第三方的控件完成,均使用XE2本身提供的组件或者功能完成的。 TCrazyMap中的UseGDIP是用来支持GDI+绘图的,但实际中发现GDI+对图形质量的贡献并不突出,而对显示效率的负面贡献却相当的大,因此并没有对所有地图对象设计GDI+的显示代码,请不要进行UseGDIP的测试工作。 伴随程序提供的是一幅老早的西安地图,还有通过文件保存的地图图层编组组。 作者Lewolf保留所有权利。

2012-02-26

一个高速显示电子地图的示范程序

这是一个C++ Builder作的电子地图示范程序,可以支持MapInfo交换格式的mif格式电子地图,程序实现了打开文件、放缩、移动、测量等最基本的功能,这些功能均是由一个VCL控件实现的,这个控件名称是CrazyMap,属于非公开发布的资源。 本程序和其他类的电子地图相比较,并无太多的差别和特色,甚至很多方面欠缺很多,其唯一的特点是高速显示能力,尤其在大型地图的显示方面,具有得天独厚的优势,本压缩包中含有一个50平方公里左右的mif格式电子地图,大部分为1:10000的内容,部分区域为1:1000的地图内容,总共数据大小为20Mb左右。使用本程序的显示速度相比Mapinfo 7.0和AutoCAD 2004均有较大优势,尤其是在低显示比例情况下,地图的移动、放缩、重绘等表现都非常优秀。同样地图数据在另一个国外的VCL控件eazymap中显示,其放缩、移动速度要比本程序低一个数量级,重绘则效率低两个数量级以上。 在小数据量的地图显示上,本程序并不具备特别的优势,主要优势体现在大数据量和高频率刷新方面,若结合多线程处理,发挥多核处理器的处理优势,并结合一定的缓存技术,则可为大型应用的GIS系统提供较好的显示方面支持。 Lewolf@tom.com QQ:57440981

2009-12-20

VCL揭密(0.002)-看起来有点象C++ Builder

这是“VCL揭密”的第二个版本 Build 0.002--看起来有点象C++ Builder 在这个版本里面,实现了动态创建加载的bpl文件中的组件,并能够在EditForm中模拟C++ Builder对创建的对象进行移动、放缩等操作。Object Inspect和C++ Builder中的类似,但是目前近能够显示所包含的属性和事件,不能将动态创建的对象的属性值和事件句柄提取出来。 这并不是为了模仿C++ Builder,而是更加深入的研究VCL技术,Build 0.002的代码总共1000多行,全部提供给网友。 Lewolf Lewolf@163.net

2006-03-16

VCL揭密(0.001)

这是一个非常简单的程序,仅仅只有400多行代码,但却是作者花了两天的时间跟踪CUP运行状况才编写出来的,作者希望通过这个程序和揭示VCL组件的一些为公布的秘密,以及IDE是如何使用pbl文件的。 该程序可以模拟IDE建立组件面板,并能够将pbl库包加载组件面板中,创建类似IDE中组件面板的组件图标,点击组件面板中的图标可以显示该组件的属性、事件,以及继承其基类的属性、事件。 原则上讲,在IDE中能够如何使用bpl中的组件,就在应用程序中也能够如何使用,但要动态使用bpl库并不是一件容易的事情,目前该软件仅能观察bpl中组件的部分信息,还不能在应用程序中动态的创建由程序载入的bpl中的组件。同时对bpl中属性编辑器和组件编辑器的注册都没有进行处理。 该程序是在C++ Builder 5中编写并编译的,只能运行在C++ Builder 5的环境中,要观察C++ Builder 6的bpl库,需要在C++ Builder 6中重新编译程序,并修改一处代码(C++ Builder标准控件包的名称)。由于程序需要动态加载bpl,因此所有的vcl类库不能选择静态连编,在没有安装C++ Builder5或者没有BCB5的基本控件包的系统中不能运行该程序。 没有安装BCB运行环境的朋友,可以拷贝borlndmm.dll、cc3250mt.dll、和VCL50.bpl即可运行该程序,压缩包中包含了一个作者开发bpl库包,库包中有四个控件可供测试使用。

2006-03-16

纪念一个没落的团队--《第五次克隆》小组

发表于 2003-03-20 最后回复 2019-10-12

听说??比尔·盖茨!!死了

发表于 2003-03-29 最后回复 2019-10-12

VCL揭密0.001版http://www.csdn.net/cnshare/soft/16/16244.shtm

发表于 2003-03-10 最后回复 2016-06-17

一行代码实现在DBGrid中按照指定字段排序

发表于 2003-06-09 最后回复 2016-06-17

下载频道放了个OpenCL的XE2 VCL控件,可以想TQuery一样使用OpenCL

发表于 2014-01-12 最后回复 2014-02-18

DXScene4.42在XE2 Update3中的Bug修复

发表于 2012-07-27 最后回复 2014-01-12

在下载频道放了一个XE2开发的MapInfo电子地图,带有一个超级的ObjInspector,欢迎您下载

发表于 2012-02-28 最后回复 2014-01-12

在下载频道放了一个XE2开发的MapInfo电子地图,带有一个超级的ObjInspector,欢迎您下

发表于 2012-02-28 最后回复 2012-02-28

大家看看这个代码有没有问题

发表于 2005-06-01 最后回复 2005-09-05

使用C++ Buidler编写的一个现场编译的应用

发表于 2005-05-29 最后回复 2005-06-27

BCB6有这样一个Bug

发表于 2004-09-02 最后回复 2004-09-29

该帖为三分帖!!!

发表于 2004-06-21 最后回复 2004-07-02

谁使用过ISAPI程序的Cookie功能

发表于 2004-03-08 最后回复 2004-03-08

都是对齐(Data Alignment)惹的祸

发表于 2003-12-22 最后回复 2003-12-22

欢迎大家测试使用,网络机票预订系统(C/S)结构

发表于 2003-12-16 最后回复 2003-12-19

请教----如何用C编写db2的存储过程

发表于 2003-11-19 最后回复 2003-11-26

升职、散分、提问

发表于 2003-09-30 最后回复 2003-10-08

BCB的一个Bug--编写SQL Server扩展存储过程时Release版会导致进程错误

发表于 2003-09-15 最后回复 2003-09-15

谁有MC,就是Message Compilor

发表于 2003-09-08 最后回复 2003-09-10

找个理由“放水”

发表于 2003-07-02 最后回复 2003-07-07

刚看了一篇文章《危险来自何方》,觉得好危险--我们都被愚弄着

发表于 2003-04-21 最后回复 2003-04-27

大消息,关于比尔·盖茨

发表于 2003-03-29 最后回复 2003-03-31

散分,下载过千

发表于 2003-03-24 最后回复 2003-03-24

散分,下载过千

发表于 2003-03-24 最后回复 2003-03-24

VCL揭密0.001版http://www.csdn.net/cnshare/soft/16/16244.shtm

发表于 2003-03-10 最后回复 2003-03-12

关于C++ Builder中Socket的问题

发表于 2002-12-13 最后回复 2002-12-29

如何在程序中将用户验证和域用户验证结合起来

发表于 2002-11-25 最后回复 2002-11-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除