Base64 编码/解码的小工具

今天有空,完善了一下博客的模块,不过好多都是.blog的安装包,里面的代码都是Base64加密的,不能修改,只好在网上搜索了一下Base64编码、解码方面的小工具。GG搜索了一下,出来一大堆,都还不错。于是修改了一下自己需要的,然后重新加密,完善了博客。

[color=#FF0000]修正了对正文字符处理时的一个BUG!
增加了自定义字符参数!编译后的工具已经更新,源码就不再更新了,呵呵[/color]

下午无聊,又想着自己动手做个自己的专用,呵呵!完成界面如下: 继续阅读“Base64 编码/解码的小工具”

类与类之间的关系的发现-阅《Reverse C++》有获(3)

继续利用昨天的那个多继承类的例子,然后在派生类里添加自己的构造函数与析构函数,修改如下:


class C: public A,public B{
  private:
    int a,b;
  public:
    void displayC(){
      cout< <"function: displayC()\n";
    }
    C(){
      cout< <"Constructor C\n";
    }
    ~C(){
      cout< <"Destructor C\n";
    }
};

继续阅读“类与类之间的关系的发现-阅《Reverse C++》有获(3)”

C++类的实例的内存布局-阅《Reverse C++》有获(1)

一、在 Visual C++中,类的成员变量是按照其声明的大小依次排列在内存中的。
为了验证这一点,我将昨天的一个示例稍稍修改了一下:


#include
using namespace std;

class A{
  private:
    char ch;         //将char类型的成员变量提前放置
    int a,b;    
    
  public:
    A(){
      cout< <"调用构造函数\n";
      a=2;
      b=3;
    }
    ~A(){
      cout< <"调用析构函数\n";
    }
    
    void display(){
      cout< <"a+b="<    }
};
  
int main(){
  A a;
  a.display();
  
  return 0;
}

继续阅读“C++类的实例的内存布局-阅《Reverse C++》有获(1)”

研究C++的一个编译开关:-d1reportAllClassLayout

编译开关:-d1reportAllClassLayout
[color=#FF0000]注意:-d1,这里的是数字“1”,而不是小写的“L”。[/color]汗,我自己就犯了这个错误,老是被忽略掉,而不起作用!

另外,不是自己生成一个文件,在控制台编译时,他直接输出在了控制台窗口。所以在控制台编译时,我使用了重定位到文件:


E:\Programming\c_cpp>cl classA.cpp -d1reportAllClassLayout > class.layout
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.


E:\Programming\c_cpp>

继续阅读“研究C++的一个编译开关:-d1reportAllClassLayout”

没事,写个猜数的小游戏

呵呵!以前做的一课C++程序里一段代码,无事,做成一个GUI界面的!
没什么技术含量。源代码工程与编译后的程序,大家都可以从附件里下载,打包在一起了!
主要是在初始化时,设置一下变量,然后在“生成”时,执行一下随机数的生成,然后在“OK”时,进行一下比较,然后根据设置进行提示信息的输出! 继续阅读“没事,写个猜数的小游戏”

PE文件格式学习:可选头的大小SizeOfOptionalHeader

在PE头部,在IMAGE_NT_HEADERS结构中的FileHeader成员中指定了后面的OptionalHeader成员的大小!
IMAGE_NT_HEADERS的结构定义如下:


typedef struct _IMAGE_NT_HEADERS {
    DWORD Signature;
    IMAGE_FILE_HEADER FileHeader;
    IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;

继续阅读“PE文件格式学习:可选头的大小SizeOfOptionalHeader”