所有文章
文章平均质量分 55
Muf
这个作者很懒,什么都没留下…
展开
-
C++中如何让一个类不能被继承
[C++实现Sealed类] 今天看到《软件研发5》有一篇译自CUJ的文章“使类不可继承”,方法很好,但有几个毛病: 1. 正如译者说的,还是有办法进行继承,虽然方法有点变态 2. 最主要的毛病却是,这种办法会造成运行时的开销。因为至少会增加VTABLE指针。 所以,针对以上两个问题,作了改动,如下: #ifdef _DEBUG namespace internalSealed {原创 2004-06-24 10:22:00 · 4070 阅读 · 1 评论 -
如何在Form中嵌入Excel
.NET Framework1.0和1.1 都没有实现OleContainer组件。查遍MSDN,最后得了一个提示:可以使用IEBrowser来模拟OleContainer。这绝对是一个超重的实现,不过,最目前情况下,却是一个最省事的方法。本文就简单的说明一下,如何使用IEBrowser控件来嵌入Excel表格。 1. 首先,需要在工具栏中导入“Microsoft WEB 浏览器”。可以在工原创 2005-04-11 14:48:00 · 2628 阅读 · 0 评论 -
如何使用.NET配置文件(二)
3. 自定义配置结构 (使用IConfigurationSectionHandler) 假设有以下的配置信息,其在MyInfo可以重复许多次,那么应如何读取配置呢?这时就要使用自定义的配置程序了。 访问代码如下:Hashtable cfgTable = (Hashtable)ConfigurationSettings.GetConfig( "myConfigs" );Debug.A原创 2005-04-27 11:02:00 · 2278 阅读 · 0 评论 -
C++指针探讨 (-) 数据指针
指针,在C/C++语言中一直是很受宠的;几乎找不到一个不使用指针的C/C++应用。用于存储数据和程序的地址,这是指针的基本功能。用于指向整型数,用整数指针(int*);指向浮点数用浮点数指针(float*);指向结构,用对应的结构指针(struct xxx *);指向任意地址,用无类型指针(void*)。 有时候,我们需要一些通用的指针。在C语言当中,(void*) 可以代表一切;但原创 2005-05-11 20:59:00 · 2330 阅读 · 0 评论 -
C++指针探讨 (二)函数指针
试了几十次,一直没办法在CSDN上发表成功这篇文章,只好留下镜象的链接了:http://www.teeta.com/ttweb/?U=ly4cn&Op=Log&Do=Detail&KeyID=25324原创 2005-05-28 10:30:00 · 2169 阅读 · 0 评论 -
C#注释文档生成的HTML问题解决
最近在使用Visual Studio 2003生成C#的程序注释文档时,发现生成的HTML文档不能够正常使用。大惑不解之下,请教了一位同事,经这位同事多方试验之下,突然发现,原来VS在生成HTML文件时,在文件末尾多加了 0x00 字符引起的。VS生成的HTML是UNICODE格式的文件,可能是VS的BUG吧,生成的HTML文件末尾均被加上一个单字节的 0x00,造成了IE无法完成HTML文档的原创 2005-06-02 16:18:00 · 3992 阅读 · 0 评论 -
创建一个没有窗口的程序
为了创建一个主窗口不显示的应用程序,我做了若干个探索。结果绕了几个弯,回到最简朴的没有窗体的世界中。 由此发现,我已经对窗体设计器产生了严重的依赖性,而且自已已经懒得不得了了--哪怕只有几行的代码,也要IDE自动生成。 我将探索过程,以及最后的解决,全部呈现出来,希望能对大家有点帮助。 2006-03-16 原文 2006-03-17 修订 2006-03-30 修订20原创 2006-04-13 13:27:00 · 3734 阅读 · 0 评论 -
您也使用托管C++吗?
转向.NET后,手头上往往仍有旧的模块要重用。也许这些模块是Delphi写的,也许是C/C++写的,或者是其它编程语言……为了能把它们移植到.NET下,或者是在.NET中调用,To be or not to be, that is a question。 在这里,我笔记了几个在工作中遇到的几个场景。不过,这里不包括完全使用C#来重写原来用C++编写的程序这种变态的需求。当你被要求做这种事的时原创 2006-04-10 09:47:00 · 12764 阅读 · 13 评论 -
C++指针探讨 (三) 成员函数指针
C语言的指针相当的灵活方便,但也相当容易出错。许多C语言初学者,甚至C语言老鸟都很容易栽倒在C语言的指针下。但不可否认的是,指针在C语言中的位置极其重要,也许可以偏激一点的来说:没有指针的C程序不是真正的C程序。 然而C++的指针却常常给我一种束手束脚的感觉。C++比C语言有更严格的静态类型,更加强调类型安全,强调编译时检查。因此,对于C语言中最容易错用的指针,更是不能放过:C++的指针原创 2006-04-10 09:43:00 · 1898 阅读 · 0 评论 -
如何使用.NET配置文件(一)
.NET的应用程序配置文件,使用的是XML格式。相对INI文件来说,它的功能要强上不少,而且具有很强的可扩展性。它的缺点是不能直接进行写操作,也就是说,不能直接在程序中修改配置文件的数据(当然不是指不能,不过不是本文讨论的范围)。本文主要目的是探讨如何扩展配置文件,并在其加入各种自定义配置信息。 1. 使用 简单的配置信息,可以直接放入标记中。如:xml vers原创 2005-04-11 10:02:00 · 2210 阅读 · 0 评论 -
用 .NET 实现插件机制
.NET 提供的反射(Reflection)机制可以很方便的加载插件。本文提供一种方法,可以灵活的正确的载入所需的插件。在.NET中,一个完整的类型名称的格式如 "类型名, 程序集名"。例如:"System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyTok原创 2005-08-21 11:52:00 · 2135 阅读 · 0 评论 -
扫雷 - 冲破火网 Ver 1.02
扫雷 - 冲破火网 Ver 1.02游戏目的 指挥下方的小兵,通过雷区,到达上方的目标地点。游戏规则 在不触发地雷的情况下到达目标地点,并尽可能多的展开地图。提示 一定有一条没有地雷的路,可以到达目标。 “重新来过”以及“读取存档”将使你的纪录不能上榜。附件1: 游戏 附件[lyMine.rar]附件2:源代码 (Delphi 7.0) 附件[lyMine_src.rar]原创 2005-04-11 15:02:00 · 1830 阅读 · 0 评论 -
使用XML实现BBS(主题列表篇)
沐枫(初稿) 表A: 1-0-1,this is a test 3-1-1,this is a test 4-3-1,this is a test 5-3-1,this is a test 2-0-2,this is a test 上面是BBS主题列表的一个例子。一般来说,假如不是使用Oracle(Oracle 有一条查询语句可以自动生成家族树,请查阅Select ... s原创 2001-05-28 11:05:00 · 1751 阅读 · 0 评论 -
Delpi在MDI窗口中显示图形控件及指定背景的解决方案
在使用MDI介面时,有时候需要在MDI客户窗口中显示一些图形或软件封面,使得软件介面不会显得空旷,软件功能也能一目了然。然而在Delphi中并没有直接给出这些接口。在MDI窗体中放入任何图形控件在运行时都不能显示。因此需要对MDI窗体进行改造。申明: 本方案仅针对MDI窗体,如果应用在非MDI窗体中,后果难说,你自已试试吧。 记住,窗体的FormStyle属性要设置为:fsMD原创 2001-05-29 13:33:00 · 1831 阅读 · 0 评论 -
有关安全方面的注册表信息
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Currentversion/Winlogon]LegalNoticeCaption :String = “登录前的提示对话框标题”LegalNoticeText :String = “登录前的提示对话框内容”[HKEY_LOCAL_MACHINE/Network/Logon]MustBeValidate原创 2001-07-16 08:43:00 · 1728 阅读 · 0 评论 -
ASP网页模板的应用: 让程序和界面分离,让ASP脚本更清晰,更换界面更容易
为了避免ASP程序和HTML代码混写造成维护困难的情况,本文介绍了一种方法,利用模板来分离程序和页面,使程序设计更加轻松。 在使用ASP制作一个站点的时候,常常会出现一个ASP文件中,程序代码和HTML代码混合的情况。这样子做有许多缺点: 1. 且不说编程时就要对页面布局进行设计和编排,造成代码混乱难懂,不规范; 2. 当需要改变页面外观时,你不仅要改变HTML部份,也原创 2002-05-08 14:58:00 · 5230 阅读 · 1 评论 -
理解 《混沌 In C++::是类型?还是函数调用?》
原文及评论见: 《混沌 In C++::是类型?还是函数调用?》http://blog.csdn.net/Jinhao/archive/2004/06/29/29021.aspx 看了原文的评论,发现有不少人误解“函数声明怎么能当形参”。一开始,我也是一头雾水,但后来总算是理解了,就在这里稍微总结一下,也算是给自已提个醒吧。 作者的代码我在 VC++.NET2003编译过。就目前来说,微软原创 2004-07-02 10:51:00 · 2819 阅读 · 1 评论 -
LuaWrapper For C++ 发布
在C++中集成Lua脚本作者: 沐枫 (第二人生成员)版权所有转载请注明原出处主页:第二人生 http://www.d2-life.com http://www.d2-life.com/LBS/blogview.asp?logID=41为什么要用Lua作脚本? 使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中原创 2004-07-24 21:11:00 · 6218 阅读 · 2 评论 -
SMS PDU模式,数据格式和长度计算
[SMS PDU模式,数据格式和长度计算] 手机短信发送时,使用SMS PDU模式,数据格式和长度计算方法: UDL 为UD的字节长度 如:7bit数据 "hello" UDL = 05, UD = E8 32 9B FD 06 又如:16bit数据 "abc" UDL = 06, UD = 00 61 00 62 00 63原创 2005-03-17 09:34:00 · 3662 阅读 · 0 评论 -
int 与 byte[] 的相互转换
关于 int 与 byte[] 的相互转换,Mattias Sjogren 介绍了3种方法。请参见 《将Integer转换成Byte Array》。其实应该还有不少方法。在这里,我归纳了包括Mattias Sjogren在内的4种方法。1. 最普通的方法从byte[] 到 uint b = new byte[] {0xfe,0x5a,0x11,0xfa};u = (uint)(b[0] |原创 2005-04-07 19:38:00 · 2477 阅读 · 0 评论 -
让C++源码和C#源码一起生成单一的Assembly
本文提供了一个方法,让C++源码和C#源码一起编译链接成一个单一的Assembly。 由于C++提供了IJW方法,允许将旧有C++代码也编译成托管代码,因此这篇小文可以用极小的工作量来彻底解决所有C++遗留代码移植到.NET的问题。 这个方法,再加上前次的小文《您也使用托管C++吗?》,就可以把C++遗留代码移植到.NET的所有方法一网打尽了。 好了,言归正传。 假设一个很简单原创 2006-04-15 00:16:00 · 4749 阅读 · 2 评论