【C/C++学院】0723-32位与64位/调戏窗体程序/数据分离算法/内存检索/二分查找法/myVC

时间:2022-02-23 03:42:57

【送给在路上的程序猿】

对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现。

对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步。

对于一个开发团队而言。能在短期内开发出用户惬意的软件系统是起核心竞争力的体现。

每个程序猿都不能固步自封,要多接触新的行业,新的技术领域,突破自我。

32位与64位

地址与内存的关系

4G = 4*1024M = 4*1024*1024k = 4*1024*1024*1024 Byte字节 = 2^32
32位,指针就是4个字节
#include <stdio.h>
void main()
{
int num = 10;
printf("%p\n", &num);
int *p = #
printf("p=%d\n", sizeof(p));
getchar();
}

调戏窗体程序

使用黑客工具。 spy,找到//FindWindowA參数:窗体类名。标题

#include <stdio.h>
#include<stdlib.h>
#include<Windows.h> /*
窗体隐藏的时候, 能够从任务管理器中,看到此进程已经运行,使用cmd命令中的命令,把进程结束掉
C:\Users\*ngqiang>taskkill /f /im notepad.exe
成功: 已终止进程 "notepad.exe",其 PID 为 7556。
成功: 已终止进程 "notepad.exe"。其 PID 为 1384。 成功: 已终止进程 "notepad.exe",其 PID 为 3572。
成功: 已终止进程 "notepad.exe",其 PID 为 5272。
成功: 已终止进程 "notepad.exe",其 PID 为 6212。 */
void openCalc()
{
//int i=0;
//for(i; i<5; i++)
//{
// //system("calc");
// ShellExecuteA(0, "open", "calc", 0, 0, 1);
// //第一个參数是代表系统弹出
// //第二个參数是代表运行
// //第三个參数运行命令行
// //第四个,第五个默认0,
// //第六个參数,0代表窗体隐藏,1代表正常,3最大化,6最小化
// Sleep(2000);
//}
ShellExecuteA(0, "open", "calc", 0, 0, 1);
Sleep(2000);
} void closeCalc()
{
system("taskkill /f /im calc.exe");//结束进程
} void moveCalc()
{
int i=0;
HWND win;//指针,返回窗体的编号
//FindWindowA參数:窗体类名。标题
win = FindWindowA("CalcFrame", "计算器");//寻找计算器
if (win == NULL) //空指针避免野指针
{
printf("计算器玩失踪");
}
else
{
printf("计算器找到");
}
//控制隐藏域显示
//while (1)
//{
// ShowWindow(win, SW_HIDE);//隐藏;
// Sleep(2000);
// ShowWindow(win, SW_SHOW);//显示;
// Sleep(2000);
//} //for ( i = 0; i <= 1500; i += 10)
//{
// SetWindowPos(win, NULL, i, 0, 300, 400, 1);//移动窗体
// Sleep(30);
//}
//for对角线移动
for ( i = 0; i < 1500; i++)
{
SetWindowPos(win, NULL, i, i*9/16, 300, 400, 1);//移动窗体
Sleep(50);
}
} void main()
{
openCalc(); moveCalc(); Sleep(5000); closeCalc();
system("pause");
}

数据分离算法

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

(比如:1^3
+ 5^3+ 3^3 = 153)

#include <stdio.h>
#include <stdlib.h>
void main()
{
int i;
for ( i = 100; i <= 999; i++)//遍历全部数据
{
int ge = i % 10;//取出个位
int shi = i / 10 % 10;//取出10位
int bai = i / 10/10;//取出百位
//筛选
if (ge*ge*ge + shi*shi*shi + bai*bai*bai == i)//推断条件
{
printf("%d^3+%d^3+%d^3=%d\n", ge, shi, bai, i);//打印
}
}
printf("\n");
getchar();
}

内存检索

植物大战僵尸游戏中,自己主动添加阳光。找到内存地址。编写dll,使用DllInject.exe工具进行注射。

二分查找法

保证查找之前。数据是排序的。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> void ShowArray(int a[], int n)
{
for (int i = 0; i < n; i++)
{
printf("%d,", a[i]);
}
printf("\n");
} void PaiXu(int a[], int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1 - i; j++)
{
if (a[j]>a[j+1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
//num为所要查找的数据,返回数组下标
int SearchFor(int a[], int n, int num)
{
for (int tou = 0, wei = n - 1, zhong = (tou + wei) / 2; tou <= wei; zhong=(tou+wei)/2)
{
printf("\n開始查找%d,%d,%d", tou, wei, zhong);
if (a[zhong] == num)
{
return zhong;
}
else if (a[zhong]>num)
{
wei = zhong - 1;
}
else
{
tou = zhong + 1;
}
}
} int SearchWhile(int a[], int n, int num)
{
int tou = 0;
int wei = n - 1;
int zhong = (tou + wei) / 2;
while (tou <= wei)
{
printf("\n開始查找%d,%d,%d", tou, wei, zhong);
if (a[zhong] == num)
{
return zhong;
}
else if (a[zhong]>num)
{
wei = zhong - 1;
zhong = (tou + wei) / 2;
}
else
{
tou = zhong + 1;
zhong = (tou + wei) / 2;
}
}
} void main()
{
int a[50] = { 0 };
time_t ts;
srand((unsigned int)time(&ts));//随机数种子
for (int i = 0; i < 50; i++)
{
a[i] = rand() % 100;
//printf("%d,", a[i]);
} PaiXu(a, 50);
ShowArray(a, 50); int num;
printf("plesae input your find num:");
scanf("%d", &num); //扫描数据接收输入
//int ret = SearchFor(a, 50, num);
int ret = SearchWhile(a, 50, num);
if (ret == -1)
{
printf("not find\n");
}
else
{
printf("find [%d]\n", a[ret]);
}
system("pause");
}

myVC

使用mfc打造自己的ide, 找到vs和codeblocks的路径中的bat批处理文件,通过单击button,使用system指令去调用这个bat批处理文件。

如D:\Program Files\Microsoft Visual Studio 11.0\Common7\Tools\ VsDevCmd.bat

|=========== 吴英强CSDN博客专栏==============|

|== C/C++学院 专栏文章的内容(不定期更新)===|

|== linux驱动开发 探索linux底层的奥秘
==========|

|== Java基础学习篇 掌握java语言的基础知识=====|

|======
每天进步一点点,健康快乐每一天 ========|

【C/C++学院】0723-32位与64位/调戏窗体程序/数据分离算法/内存检索/二分查找法/myVC的更多相关文章

  1. 笔记:C语言数据类型在32位与64位机器上的字节数

    读<深入理解计算机系统> 第二章 信息的表示与处理 32位与64位的典型值,单位字节 声明 32位机器 64位机器 char 1 1 short int int 4 4 long int ...

  2. GCC下32位与64位机器类型变量所占字节数

    GCC下32位与64位机器类型变量所占字节数 在C语言中,编译器一般根据自身硬件针对类型变量来选择合适的字节大小,下面列举一下在GCC编译器下32位机器与64位机器各个类型变量所占字节数目: C语言 ...

  3. 安装PHP扩展32位与64位的误区&lpar;x86与x64的查看&rpar;

    在安装PHP扩展(DLL,SO),除了需要对应的PHP版本外,在WINDOWS还需要区分(TS线程,NTS非线程),如何判断呢? 1.如何判断是NTS还是TS(WINDOWS用户) 看PHP所在目录中 ...

  4. 关于Windows与Linux下32位与64位开发中的数据类型长度的一点汇总

    32位与64位的数据类型长度是不一样的,而且windows和linux也有些许区别,下面把64位下的数据长度列表如下(无符号unsigned和有符号的长度一样): linux64            ...

  5. 处理器核、Core、处理器、CPU区别&amp&semi;&amp&semi;指令集架构与微架构的区别&amp&semi;&amp&semi;32位与64位指令集架构说明

    1.处理器核.Core.处理器.CPU的区别 严格来说"处理器核"和" Core "是指处理器内部最核心的部分,是真正的处理器内核:而"处理器&quo ...

  6. win2003 64位系统IIS6&period;0 32位与64位间切换

    ASP.NET 1.1,32 位版本 要运行 32 位版本的 ASP.NET 1.1,按照以下步骤操作: 1.单击“开始”,单击“运行”,键入 cmd,然后单击“确定”. 2.键入以下命令启用 32 ...

  7. 浅淡Windows7 32位与64位&sol;x86与x64的区别

    看到有很多会员问到底是选Windows7 x86,还是选x64.这里简单的谈一下这这两种系统的区别. 简单的说x86代表32位操作系统  x64代表64位操作系统. 简单的判断电脑是否支持64位操作系 ...

  8. values of type NSInteger should not be used as format arguments&semi; 关于Xcode中烦人的32位与64位警告处理方法&period;

    http://*.com/questions/16075559/why-does-an-nsinteger-variable-have-to-be-casted-to-long ...

  9. 使用visual c&plus;&plus; 2005远程调试64位系统上32位与64位程序

    一直都挺喜欢使用visual c++远程调试代码,它能展现给我们当时代码执行最真实的情景,今天有时间记录一下,以免以后忘了. 远程调试需要在被调试端安装服务器,对于visual c++ 2005来说调 ...

随机推荐

  1. mysql命令总结

    统计全库数据量: use information_schema; SELECT TABLE_NAME, (DATA_LENGTH) as DataM , (INDEX_LENGTH) as Index ...

  2. 照片大管家iOS-实现本地相册、视频、安全保护、社交分享一站式功能,源码开放

    <照片大管家> APP功能: 1.本地照片批量导入与编辑 2.本地视频存储与播放 3.手势密码.数字密码.TouchID安全保护 4.QQ.微信.微博.空间社交分享 5.其他细节功能. 运 ...

  3. 你想建设一个能承受500万PV&sol;每天的网站吗?

    (如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力.本博客会逐步推出一系列的关于大型网站架构.分布式应用.设计模式.架构模式等方面的系列文章) 你想建设一个能承受500万P ...

  4. 格而知之7:我所理解的Runtime(2)

    消息发送(Messaging) 8.以上便是runtime相关的一些数据结构,接下来我们回看一开始的疑问: objc_msgSend()函数在执行的过程中是如何找到对应的类,找到对应的方法实现的呢? ...

  5. 第3章2节《MonkeyRunner源码剖析》脚本编写示例&colon; MonkeyDevice API使用示例&lpar;原创&rpar;

    天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写<深入理解 MonkeyRunner>书籍“.但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在 ...

  6. adobe air for ios 应用完成appstore评论

    1,跳转到App Store:NSString *str = [NSString stringWithFormat:@"http://itunes.apple.com/us/app/id%d ...

  7. UWP&colon; 妙用自定义 Action 以简化并重用代码

    相信每一位 App 开发者,在开发过程中,都会有一些代码被反复用到,比如:复制文本,打电话,发短信,发邮件,给应用添加评论等等.在项目之间复制这些代码段,实在不是一个好办法,所以大家可能会把这些代码放 ...

  8. R语言实现两文件对应行列字符替换&lpar;解决正负链统一的问题&rpar;

    假设存在文件file1.xlsx,其内容如下: 存在文件file2.xlsx,其内容如下: 现在我想从第七列开始,将file2所有的字符替换成file1一样的,即第七.八.九.十列不需要改变,因为fi ...

  9. C&num;List源码

    List // C# 源码 public class List<T> : IList<T>, System.Collections.IList, IReadOnlyList&l ...

  10. Linux Centos配置ssh客户端工具putty

      配置ssh客户端工具putty 1.直接点击putty.exe文件 2.配置putty 3.配置putty编码 4.配置putty字体大小 5.配置putty样式 6.保存配置信息 7.配置MTp ...