首页
社区
课程
招聘
[原创]菜鸟注册机编写基础教程(一)
发表于: 2006-6-14 15:54 37943

[原创]菜鸟注册机编写基础教程(一)

2006-6-14 15:54
37943

    写在前面:辛辛苦苦把一个算法弄清楚后,苦于不懂编程,完美的总结中总留下点遗憾,也给文章的技术含量打了不少折扣。就象块洁白的美玉上多了块瑕疵。本文就是专门针对那些对算法已经非常熟悉了却苦于无法用高级语言来表达的“技术员”写的。事先声明,本人也不是程序员,在编程方面也是菜鸟一个,只是把自己仅有的一点心得拿出来与大家分享,主要还是靠自己努力,所以高手就不要来看笑话了,万一不小心飘过的话最好能提点意见,顺便把文中的错误更正一下。
    文章采用VB、DELPHI、VC同时进行的方法,这样便于对比。这三种语言到底哪个好呢,网络上有很多的比较,各个语言都有自己的特色,你只要认准哪种语言,那种就是好的。因为是写注册机,所以编译速度、编译后文件的大小等对我们都不重要,我们也不深入了解各种语言(再说更深入的我也不懂),我们只要了解一些常用的与算法相关的内容。文章拟定分基础篇、入门篇、提高篇、高级篇、实战篇和效果篇。话不多说,开始….

一、        基础篇
    这节不看也罢,大部分知识网络上都能收集的到,而且比这里齐全,这里只是做了集中收集,并进行了对比,我希望大家知道一点,那些搜索引擎永远都是最好的老师,要想得到更全的内容请到网上搜集。本节内容:常量、变量赋值,运算符,基本语句,常用函数。要求熟记之。
1、        常量、变量赋值
* 比如我们想定义变量A为整型数据:
VB:     Dim a as Integer
DELPHI:  a:integer;
VC:       int a;
* 定义常量B为16进制值75BCD15:
VB:     b=&H75BCD15
DELPHI:  CONST
          b=$ 75BCD15
VC:      CONST LONG b=0X75BCD15
==============================================================
   * VB、Delphi和C++数据类型对照表 *

字长/值域              VB              Delphi                  C++

8位有符号整型      Integer           ShortInt               signed char
16位有符号整型      Integer          SmallInt               short
32位有符号整型      long             Long                  Long
8位无符号整型       byte             Byte                  unsigned char
16位无符号整型      byte             Word                 unsigned short
32位有符号整型      Integer           Integer                int
32位无符号整型      Integer           Cardinal               unsigned int
布尔型              Boolean           Boolean                 bool
真/假 或 16位无符号整型              ByteBool               unsigned char
真/假 或 16位无符号整型              WordBool               unsigned short
真/假 或 32位无符号整型              LongBool              BOOL (WinAPI)
8位无符号字符       string            AnsiChar                char
宽字编码字符        string             WideChar               wchar_t
8位无符号字符      string             Char                    char
AnsiString类         string             String                   AnsiString
32位浮点数         single             Single                  float
64位浮点数         double           Double                 double
80位浮点数                           Extended               long double
32位浮点数                           Real                    double
32无类型指针                         Pointer             void *
32位字符型指针                        Pchar              unsigned char *
32位ANSI型字符指针                  PAnsiChar             unsigned char *
64位浮点数                           Comp                Comp 类
OLE可变类型值                       OleVariant          OleVariant 类
======================================================================

2、        运算符

Visual Basic                 C#                    Delphi           运算符的名称
+(一元)                    +(一元)             +(一元)         加
-(一元)                   -(一元)              -(一元)         减
IsTrue                      true                  (无此运算符)     判断真
IsFalse                     false                 (无此运算符)     判断假
Not                           !                      not            逻辑非
Not                           ~                      not            取反
(无此运算符)           (无此运算符)             Trunc           将实型值截取为整型值
(无此运算符)           (无此运算符)             Round           将实数值舍入为整型值
(无此运算符)               ++                     Inc             递增
(无此运算符)               --                     Dec              递减
+                            +                      +                加法
-                            -                      -                减法
*                             *                     *                乘法
/                             /                     /                除法
\                        (无此运算符)          (无此运算符)       整除
(无此运算符)           (无此运算符)           div                 除
&                        (无此运算符)          (无此运算符)       连接符
^                        (无此运算符)           (无此运算符)      指数运算
(无此运算符)               <<                   shl                 逻辑左移
(无此运算符)               >>                   shr                 逻辑右移
=(判断等值不是赋值)        ==                    =                  等于
<>                           !=                   <>                  不等于
<                            <                    <                   小于
<=                           <=                   <=                  小于等于
>                            >                    >                    大于
>=                           >=                   >=                  大于等于
And                           &                  and                  逻辑与
Or                            |                   or                  逻辑或
Xor                        ^                     xor                   逻辑异或
And                        &&                    and                   逻辑与
Or                         ||                    or                    逻辑或
(无此运算符)          (无此运算符)           xor                   异或
Mod                         %                    mod                    取余
Like                    (无此运算符)        (无此运算符)           VB的LIKE
CType               用户定义的类型转换       用户定义的类型转换        类型转换

3、        基本语句(只讲最常用的三种,更多的内容看附件)
①        赋值语句
VB:
   变量=表达式
例:
         Dim a As Integer
               a=100*20  
Set 变量=表达式
例:
           Dim ex As DataBase
      Set ex=OpenDataBase("File.mdb")
DELPHI:
赋值语句的符号是冒号+等号即 :=
例:
      A:integer;
A=$ 75BCD15
VC:     
变量名,后接“=”
例:
            a = 10     
变量定义=变量名
例:
    long b;

②        循环语句
VB:
   For  var=start To end[Step step]
      ...
   Next var
      例:
For I = 1 to 8
N=n+I
Next I
DELPHI:
for 循环变量:= 初值 to 终值 do
循环体语句
for 循环变更:= 初值 downto 终值 do
                循环体语句
例:
         for i:=1 to 8 do
            begin
            n := n+i
         end;
VC:   
       for(statement1; statement2; statement3) {
               /* body */
       }
         例:
for(i = 0; i <= 8; i++) {
                     a[i] = i + i;
            }

③        IF语句
VB:
   If 表达式 Then
      ...
    Else
      ...
    End If
      例:
If Password=str Then
          msgbox”true”
        Else
          msgbox”false”
        End if
DELPHI:
if 表达式 then
语句1
else
              语句2
例:
If Password=str Then
   begin
      ShowMessage(' True');
   end
Else
   begin
      ShowMessage('False');
   end

VC:   
       if ("条件")
{
}
else
{
}
         例:
  if(Password=str )MessageBox('true ',4);
  else{
MessageBox('false ',4);
  }

4、        常用函数 (只介绍几个常用的,更详细的内容看附件,以下的比较只是功能类似,有几个函数功能并不是完全一样。)
                        VB             DELPHI               VC
取字符长度             len()             Length()              Length Strlen()
转大写                 Ucase()           UpperCase()           toUpper()
转小写                 Lcase()           LowerCase()           toLower()
去掉字符串两边空白     Trim()            Trim()                Trim()
随机数                 Rnd()             random()              random()
取字符串第N位         mid(s,m,n)        copy(s,m,n)             strcpy(s,m,n)
取字串左边N位         left(s,n)           copy(s,m,n)             strcpy(s,m,n)
取字串右边N位        right(s,n)       copy(s,length(s)-m+1,n)   copy(s,strlen(s)-m+1,n)
十六进制转十进制        hex()              inttohex()             itoa  ltoa
十进制转十六进制        &H               $,  strtoint            atoi  atol
十进制转八进制          oct()
取字符ASCII码          s                ord()                  
去掉小数点,保留整数    fix()              trunc()
返回N个空格            space()           string of char(‘’,n)
返回N个字符            string()           string of char()
格式化字串              format()           format()                format()
数值转字符               chr()             chr(),inttostr            char ch=64
查找字符在另一字符串中的位置  instr()       pos()
四舍五入转整数          Cint()             round()                 atoi  
转浮点数                Csng(),CDbl()      strtofloat                atof
转长整型                CLng()            strtoint                 atol
转字节型                Cbyte             inttostr                 itow
取绝对值                abs()              abs()                  abs()
取平方                  sqx()              Sqr()                  sqrt()
字符转数值              val()               val()                  
数值转字符              str()                str()
取变量指针              varptr()
字符串连接              &                  strcat()               strcat()
插入                                       Insert()
分割字符串              split()              split()                CSplitter
ANSI转UNICODE       strconv()     stringtowidechar widecharlentostring   
UNICODE转ANSI                   widechartostring widecharlentostrwar

【版权声明】:  本文由langxang原创于看雪论坛,转载请注明作者并保持文章的完整, 谢谢!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (63)
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
刚才没有仔细看,说实话,大家学习的时候对事物的理解一定不要先见为主。很谢谢楼主的文章,希望下面来的朋友们一定仔细看。文章的确很好,谢谢了!
2006-6-14 21:36
0
雪    币: 146
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
好文,收藏慢慢研究!
附件下载不了。
2006-6-14 21:59
0
雪    币: 333
活跃值: (40)
能力值: ( LV9,RANK:730 )
在线值:
发帖
回帖
粉丝
4
好文章,适合我这样的菜鸟。谢谢!
2006-6-14 22:53
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
确实是从最基础的东西讲起啊
2006-6-14 23:30
0
雪    币: 9793
活跃值: (2191)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好文,支持一下。
2006-6-15 09:16
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
好文章,期待一个复杂点的实例.
2006-6-15 10:17
0
雪    币: 236
活跃值: (35)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
想问下 这个AnsiString类   C++中定义AnsiString,用VC++为什么不行,我的编译器是 6.0的
2006-6-15 13:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢楼主的指点
2006-6-16 09:54
0
雪    币: 196
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好贴呀,感觉haomms的无私分享!
2006-6-16 10:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
都是 高手啊  我看拉半天 还没明白     继续学习中
2006-6-16 10:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
好文章,期待
2006-6-26 15:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
非常适合我等初学者,不过还是有的看不太明白,先谢了
2006-6-26 21:58
0
雪    币: 200
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
收藏慢慢研究!
2008-11-15 13:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
好东西 虽然只是大略的看了下 不过很有用对学习帮助很大 先收起来
2008-12-12 15:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
也学习下吧。反正自己很笨
2009-2-1 22:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不错啊,我想问下怎么发贴啊,怎么找不到发贴的地方呢
2009-2-18 15:05
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
看来分析算法必须要对软件进行代码还原处理了
2009-4-25 14:39
0
雪    币: 216
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
好文,写得不错!
2009-4-28 14:20
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
先收起来,慢慢研究!
2009-4-28 21:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
楼主,好人啊!
2009-4-29 00:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
适合我这个小白,慢慢学习……
2009-4-30 12:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
受用了。好好的学习。
2009-5-8 02:51
0
雪    币: 656
活跃值: (448)
能力值: ( LV12,RANK:360 )
在线值:
发帖
回帖
粉丝
24
都学过一点,不过学的最多的是E
2009-5-10 01:57
0
雪    币: 605
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cfz
25
谢谢楼主分享学习成果,谢谢了,
2009-5-10 07:36
0
游客
登录 | 注册 方可回帖
返回
//