一无所知

世界如此之大,世界又如此之小!我什么都不知,只知我一无所知!

首页 CNDEV 网志 联络 (RSS 2.0) (Atom) 登录
  随笔 25 :: 收藏 0 :: 评论 0 :: 寻迹: 1

News

本站主要是技术类的文章和新闻
本站内容按创作共用方式授权
如果侵犯了您的权利,请告之!

随笔

随笔归档

图库

编程手册

常用链接

网络工具

我的链接

在线翻译

[P]编程技术

    在皮肤界面中,最难的恐怕就是自画窗口标题了,网上虽然有各种各样的解决方法,但是都不是很完美,而商业皮肤界面程序包是需要花钱买的。
    没办法,只有自己摸索了,最后,去研究了一下 Windows 2000 的核心代码中关于窗口管理部分,终于算是比较满意的解决了这个问题。


  一直以来用 AxIcon Workshop 来处理图标,但是 AxIcon Workshop稍微有点问题就是,不支持重复图标过滤,而且,在处理大量图标的时候很容易没有响应!:(

  为此,我自己写了一个图标处理工具,可以自动抽取 DLL/EXE/ICL 等文件中的图标,并进行重复图标自动过滤,图标扫描等功能,其中比较困难的是对 ICL 文件的处理,ICL 文件本质上是一个 16 Bit 的 DLL 资源文件,但是在 Windows 2000 下好象没有直接操作它的函数,至少我是不知道,查了 Google 也没查到相关资料,没有办法,只有硬来了,查了 16 Bit 的 EXE 的文件结构资料,结合网上可以找到的一些对16 Bit 的 EXE 的读写代码片段,再经过探索和摸索,终于成功的将从 ICL 中分离出 ICON 。其中的关键代码如下:希望给你有帮助


以前在Window 2000 IIS5.0下写了一个URL检测 + 重定向 + Session + 入侵检测 + 自动解压+ 自动解密的 ISAPI Filter ,用于数字图书馆项目,一直都很好使, 最近升级到 Widnows 2003 IIS6.0 后,发现 ISAPI Filter 根本运行不起来,后来查了又查,原来是文件的权限问题,IIS 6.0 ISAPI Filter 好象是在 Service 帐号下运行的(具体我也没去查过) ,将数据文件的读写权限给予Service 帐号后,ISAPI Filter 终于可以正常运行了,但是,在随后的测试中,我发现,数据解密结果不正确,郁闷啊,查吧............

经过日志跟踪和分析,终于发现问题所在,原来 IIS 6.0 和 IIS 5.0 发送给客户端的时候应答稍微有点不一样,IIS 5.0 是先单独发应一次答头 HttpFilterProc->OnSendData,

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
X-Powered-By: ASP.NET
Date: M


        传统的全文检索都是基于数据库的,SQL Server、Oracle、mysql 都提供全文检索,但这些比较大,不适合单机或小应用程序(Mysql4.0以上可以作为整合开发),Mysql也不支持中文。
        Lucene是一个高性能、纯Java的全文检索引擎,而且免费、开源。Lucene几乎适合于任何需要全文检索的应用,尤其是跨平台的应用。Lucene的作者Doug Cutting是一个资深的全文检索专家,刚开始,Doug Cutting将Lucene发表在自己的主页上,2000年3月将其转移到Sourceforge,于2001年10捐献给Apache,作为Jakarta的一个子工程。
        CLucene是C++版的全文检索引擎,完全移植于Lucene,采用 STL 编写。
        编译了一下 C++ 版本的 Lucene - CLucene - a C++ search engine  http://sourceforge.net/projects/clucene/
在 MSVC6 下修改了一些编译选项后编译成功,测试了一下,好象不


        看源代码的时候免不了要格式化一下代码,Java 当然是用 Eclipse 了,但是 C/C++ 就一直没有一个合适好用的工具来格式化(Format)/风格化(Style)代码,虽然Visual Studio 6.0 - Visual Studio 2005都提供了代码格式化功能,但是,实在是 --- 太简单了,根本不够用!!!
        后来在网上搜索了一把,发现一个很不错的工具Artistic Style ,功能很强大,支持 C/C++/C# 和 Java,而且开源,目前最后版本是 1.17.0。此版本需要用 CVS 下载并编译,其中还是有些小 Bug, 估计是作者没空改,呵呵。


Artistic Style 1.17.0-dev
A Free, Fast and Small Automatic Formatter
for C, C++, C#, and Java Source Codes
Project Overview  http://astyle.sourceforge.net  
Sources, Binaries, Bug Tr


Visual Assist X 是一个非常好的 Visual Studio 6.0 IDE 辅助工具, 但我一直没有找到注册码,当 Visual Assist X 过期后,有一种方法可以重置 Visual Assist X 的过期时间,供参考,步骤如下:
1、关闭 Visual Studio 6.0。
2、删除注册表中的 HKLM\Software\Licenses 键值。
3、删除 %TEMP% 中的 .tmp 文件。
4、在注册表中搜索关键字 "nLxxQ" ,会找到一个类似于下面所示的 COM 注册项,删除整个该项。
      HKCU\CLSID\{BC29421E-12B6-4630-A281-E18D215BC63E}


Visual C++ 编译器选项

按字母顺序列出的编译器选项
下面是一个完整的按字母顺序的编译器选项列表。要得到按类别排序的列表,请参见按类别列出的编译器选项。


在编译 JXTA-C 的时候发现一个有趣的现象,就是老是出现 LNK2005 错误

Linking...
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: __errno already defined in LIBCMTD.LIB(dosmap.obj)
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: _free already defined in LIBCMTD.LIB(dbgheap.obj)
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: _realloc already defined in LIBCMTD.LIB(dbgheap.obj)
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: _malloc already defined in LIBCMTD.LIB(dbgheap.obj)
MSVCRTD.LIB(MSVCRTD.dll) : error LNK2005: _memmove already define


        JXTA 是 Juxtapose (并列)的缩写。JXTA最早起源于2000年的夏天,现在大家把JXTA看成是P2P的平台,JXTA的目标是要解决几个技术与商业上的难题。第一是解决众多P2P系统互不相通的问题。2000年,是P2P突飞猛进的高潮年,但高潮背后却是许多小公司用自己的封闭系统试图在Internet上圈一块地。Sun认为,只有互通才能真正发挥出P2P的优势,就好像IM(Instant Messaging),能互连的人越多,越有价值。所以Sun决定出面发布一个平台,使所有P2P系统都能连接起来,只有Sun这样位置中立、但在技术上有雄存实力被大家认可的公司才有希望做成这一平台。

        JXTA的另外一个目的就是找寻一套数量最少、概念最简单的系统构成的“积木”。如果成功,这几块积木就会是今后大家构架信息系统的基本模块,从而帮助人们摆脱像Windows或TCP/IP这样的传统软件带来的包袱。但JXTA与众不同,它是由一系列网络协议构成的,用任何语言都可以实现,并不只限于Java,只有彻底独立于操作系统、网络传输技术以及程序设计语言,才真正达到了跨平台,


Longhorn Newsgroups

Longhorn Training & Events

Longhorn Related Sites

Longhorn 开发中心

Introducing "Longhorn" for Developers

Avalon Nov. '04 CTP Sample: SolFx

Mobiform Aurora XAML Editor


栏目“[P]编程技术”所有条目