DLL封装登录框架实现代码复用
(说明:发布在电脑编程技巧与维护2007年第4期上)摘 要 本文介绍用DLL封装通用的软件注册,系统登录对话窗体、修改密码窗体和关于窗体。形成登录框架,供不同软件系统调用,实现代码复用。
关键字 DLL,Delphi,登录对话,注册表,软件保护,代码复用
一、前言
在软件系统的开发过程中,为了维护软件所有者的权益和保证系统的安全性,软件需要注册授权后才能运行,操作员需要登录授权后才能登录使用。对于软件公司,这部分重复工作量很大。能不能把这部分功能封装起来,实现代码复用呢?
本文提出用DLL封装登录框架的新方法,新开发一个项目时,只需要几...
未测试过,不保证可行
===============================================================================孔祥军 苏悦娟 在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如DCS(集散控制系统)中的后台监控系统、木马控制程序、源码防拷贝等,以减少被发现、截杀和反汇编的风险。这种功能模块要求程序在运行期间不仅不会在桌面出现,也不允许被操作者从任务管理器列表中发现。 程序隐形的原理 对于一个隐形程序而言,最基本的要求是: 1. 不在桌面出现界面; 2. 不在任务栏出现图标; 3. 程序名从任务管理器名单中消失...
前段时间用Delphi写一个串口通讯程序,写的差不多之后,在测试时,发现有时候会出现有些数据传着传着就没了,很是奇怪,最后经过反复测试,只要传送0x13这个数字,就会导致后面的数据全部不能正常传输.
经过在网上查找,找到了以下解决办法: comm1.Outx_XonXoffFlow := false;
后来看了一些资料,原来这个属性是设置软件流控制的.
具体什么是软件流,我也没有很明确的认识,只能写一些个人的理解,可能有错漏的地方.
现在的RS232接口,一般是9针的,而一般使用的时候,只用了其中的RXD,TXD,GND三针(不同的串...
Delphi的错误提示莫名其妙,把调试中碰到的一些错误和处理方法记录下来
我真服了Delphi了,真是笨到一定境界了.还说什么聪明的程序员用Delphi,我看是因为Delphi实在太笨了,所以才需要聪明的程序员来用,这不是浪费人才嘛.
---------------我说的
===========================================================
1: Unsatisfied fo...
这种方法最方便,严重推荐
在点击数字列头的事件中,首先将数字变一下格式,将列的内容变为:format(列的内容,"000000000000"),再将listview控件的索引值设为TRUE,最后将列的内容改回来val(列的内容)。 '在form上加listview1控件,view值设为3,加上下面一段程序 Private Sub Form_Load() ListView1.ColumnHeaders.Add , , "Size" For i = 1 To 100 ListView1.ListItems.Add , , Int(Rnd * 1000...
1.Stream对象组件:"Adodb.Stream" 有下列方法: Cancel 方法 使用方法如下 Object.Cancel 说明:取消执行挂起的异步 Execute 或 Open 方法的调用。 Close 方法 使用方法如下 Object.Close :关闭对像 CopyTo 方法 使用方法如下 Object.CopyTo(destStream,[CharNumber]) 说明:将对像的数据复制,destStream指向要复制的对像,CharNumber为可选参数,指要复制的字节数,不选为全部复制。 Flush 方法 使...
0) 介绍 本文将首先介绍为什么要将你的C源代码分离成几个合理的独立档案,什么时候需要分,怎么才能分的好。然后将会告诉你 GNU Make 怎样使你的编译和连接步骤自动化。 对于其它 Make 工具的用户来说,虽然在用其它类似工具时要做适当的调整,本文的内 容仍然是非常有用的。如果对你自己的编程工具有怀疑,可以实际的试一试,但请先阅 读用户手册。 1) 多文件项目 1.1为什么使用它们? 首先,多文件项目的好处在那里呢? 它们看起来把事情弄的复杂无比。又要 header 文件,又要 extern 声明,而且如果需要查找一个文件,你要在更多的文件里搜索。 但其实我们有很有力的理由支持我们把...
CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。 注意,所有编译器选项都区分大小写。 若要编译但不链接,请使用 /c。 使用 NMAKE 生成输出文件。 使用 BSCMAKE 支持类浏览。 以下是一个完整的编译器选项分类列表。 优化 ...
Makefile学习教程: 跟我一起写 Makefile 0 Makefile概述 0.1 关于程序的编译和链接 1 Makefile 介绍 1.1 Makefile的规则 1.2 一个示例 1.3 make是如何工作的 1.4 makefile中使用变量 1.5 让make自动推导 1.6 另类风格的makefile 1.7 清空目标文件的规则 2 Makefile 总述 2.1 Makefile里有什么? 2.2Makefile的文件名 2.3 引用其它的Makefile 2.4 环境变量 MAKEFILES 2.5 make的工作方式 3 Makefile书写规则 3.1 规则举例...
由于编程需要,在网上搜索一元三次方程的解法,数值解法一般都是用什么迭代法,弦截法搞的.没时间研究.下面是找到的资料
=======================================================
有个公式解法
见数学手册: x^3 +px + q = 0 的通解是: x1 = (-q/2+((q/2)^2+ (p/3)^3 )^(1/2) )^(1/3) + ( -q/2 - ( (q/2)^2 + (p/3)^3 )^(1/2) )^(1/3) ...
(一)深入浅出理解索引结构
实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:
其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开...
函数说明来自:http://www.programfan.com/vbapi.asp
最新发现:
1 使用这些函数的时候,必须在form_load前面加一句ScaleMode = 3,然后所有使用到的长度单位,都应该是"像素(Pixel)",不能是原来的"堤(Twip)"了.
2 写在form_load里面的BitBlt函数没用,无法从内存中,将图像复制到PictureBox中.
有个解决办法是,设置PictureBox的AutoRedraw属性为False,然后BitBlt写在Form_Paint或者Form_Resize这两个事件中.不过这样会引起另一个问题,...
原著:Michael Dunn翻译:Chengjie Sun
原文出处:CodeProject:The Complete Guide to C++ Strings, Part I 引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展示一些简单的用法,并告诉您在必要时,如何实现各种字符串类型之间的转换。 在第一部分,我们将介绍3种字符编码类型。了解各种编码模式的工作方式是很重要的事情。即使你已经知道一个字符串是一个...
一般VB程序调用api的时候都需要事先在程序开头,声明一下需要用到的api,下面的程序演示了一种不需要事先声明,直接调用api的方法.
不过我测试了一下,好像没成功.........
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As LongPrivate Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPriva...
三个文件
aaa.h
#ifndef AAA#define AAA#include <stdio.h>int j;void aaa();#define BBB#ifdef BBBint i;#endif#endif
aaa.cpp
#include "aaa.h"void aaa(){ i=4; j=1;}
main.cpp
#include "aaa.h"void main(){ aaa(); printf("%d %d\n",i,j); i=5; j=2; printf("%d %d\n",i,j);}
...
我这篇文章的主旨是介绍一部分类和接口的高质量设计的准则。这些准则不但应该保证设计并且实现的类或者接口本身有高质量代码,而且更重要的是在工业领域应该尽可能的使代码的更新和维护不影响客户的活动,主要也就是保持二进制代码兼容(binary compatibility)和源代码兼容(source compatibility)。我希望这些准则能帮助刚从学校进入工业领域的朋友尽快适应更高标准的编程要求,尽快提升自己的设计能力。
文中以C++类的设计为讨论范围。
1 总提
面向对象编程对于产出高质量,易维护的代码是非常有帮助的。面向对象编程的概念构建于三个基本特征之上:封装,继承,多态。在C...
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。
1,防止一个头文件被重复包含
#ifndef COMDEF_H
#define COMDEF_H
//头文件内容
#endif
2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。
typedef unsigned char boolean; /* Boolean value type. */
typedef unsigned long int uint32; /* Un...