0x00 前言

1.说明

既然Android逆向是杂学,而且c语言又是我的本命学科,那么学习一下还是可以的,但是肯定不会占很多的时间,也就是一心三用,然后进行一个简单的博客说明。

3.环境

vs 2013

4.推荐

推荐先去学习c语言基础

0x01 第一个窗口程序

1.创建

1.1 新建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UZb27ISo-1678030027633)(null)]

1.2 向导点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F186vBoU-1678030024059)(http://t1.aixinxi.net/o_1c5819ia31cv5l4vh95dbgocua.png-j.jpg)]

1.3 应用程序设置

不勾选安全周期,选择空项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BVjHjZCi-1678030024059)(http://t1.aixinxi.net/o_1c581bvjbuusbk7qh39ti15rva.png-j.jpg)]

1.4 新建文件

添加-新建项-cpp文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RyXF0hXq-1678030024060)(http://t1.aixinxi.net/o_1c5822nuk1r96f8i1mr510h3umfa.png-j.jpg)]

2.第一个项目

2.1 框架搭好

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{return 0;
}

2.2 添加内容

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{MessageBox(NULL, "LOVE猪猪", "LOVE", MB_OK);return 0;
}

我们添加了一行代码。这个代码就是显示我们框框的代码。但是会因为字符问题出错,所以我们要进行修改。

2.3 修改

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"), MB_OK);return 0;
}

使用text把我们需要输入的字符包裹起来就可以了。TEXT是一个宏,当字符串中有中文的时候用TEXT包裹起来。

2.4 编译运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OTFQBtYH-1678030024060)(http://t1.aixinxi.net/o_1c582pp2r1lk618vv1mrj1kb4q5aa.png-j.jpg)]

2.5 代码分析

MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"), MB_OK);

这是我们的主要代码 ,这里有四个参数,第一个参数传入NULL,第二个参数就是显示内容,第三个参数就是标题,第四个参数就是样式。

0x02 其他样式的窗口

1.MB_OKCANCEL

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_OKCANCEL);return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VYGxlwmW-1678030024060)(http://t1.aixinxi.net/o_1c583gush6btca2tj4sms1mc2a.png-j.jpg)]

2.MB_ABORTRETRYIGNORE

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_ABORTRETRYIGNORE);return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypYYxPkp-1678030024060)(http://t1.aixinxi.net/o_1c583kmv1b3f15t71uae1thl1nuna.png-j.jpg)]

3.MB_ICONERROR

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_ICONERROR);return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ANPAMnrT-1678030027645)(null)]

4.组合使用

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_OKCANCEL|MB_ICONQUESTION);return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5OcGtuhW-1678030024061)(http://t1.aixinxi.net/o_1c5840uad1ko91bdo11cg1rc911jfa.png-j.jpg)]

5.结束语

还有很多种组合方式,可以进行自己尝试。

0x03 组合使用原理

1. “|”含义

在c语言中“|”的含义就是“或”的意思。
简单的说就是只要有1就为1,只有同为0的时候才为0。

2. 原理

首先来看一张图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QLtD1UhU-1678030024061)(http://t1.aixinxi.net/o_1c584d3i712o4vb0odt1pjrgida.png-j.jpg)]

#define MB_OK                       0x00000000L
#define MB_ICONHAND                 0x00000010L

这两个进行或运算,也就是0x00000000和0x00000010进行或运算
使用软件进行转化:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SBYl4VBO-1678030024062)(http://t1.aixinxi.net/o_1c586pnjvua91nebqijpht1p7pa.png-j.jpg)]
00000和10000就是10000,所以会保留两个特征。
其他同理

0x04 默认按钮

1.使用原因

(1)方便使用者,enter选择默认按钮
(2)防止误操作,默认按钮是最优选

2.实现

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_OKCANCEL|MB_ICONQUESTION|MB_DEFBUTTON2);return 0;
}

这里可以通过指定BUTTON1,或者BUTTON2,BUTTON3,或者BUTTON4。
展示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q7fROvjF-1678030024062)(http://t1.aixinxi.net/o_1c587hd521e7dgj513jm1remjpna.png-j.jpg)]

0x05返回值

1.基础

首先来看这张图,是关于返回值的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IGswCzIo-1678030027658)(null)]

2.简单demo

#include <windows.h>
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
{int r=MessageBox(NULL, TEXT("你是猪吗"), TEXT("LOVE"),MB_OKCANCEL|MB_ICONQUESTION|MB_DEFBUTTON2);if (r == IDOK){MessageBox(NULL, TEXT("看来你很有自知之明嘛"), TEXT("LOVE"), MB_OK);}else
{MessageBox(NULL, TEXT("想否认也没有办法,你还是猪"), TEXT("LOVE"), MB_OK);
}return 0;
}

这个就是简单的一个恶搞demo,当然如果写成其他的也是可以的。这个就看个人的发挥了。

0x06结束

以上就是c语言实战开发中的简单应用了,感觉下了一下午,但是收获还是有很多的。
有兴趣还可以看看其他系列

c语言图形化界面开发 (一)相关推荐

  1. Keil+T5L智能屏——让单片机图形化界面开发变得如此简单

    Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商.Keil公司由两家私人公司联合运 ...

  2. 基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程]

    基于PyQt5的图形化界面开发--Windows内存资源监视助手[附带编译exe教程] 0. 前言 1. 资源信息获取函数--monitor.py 2. UI界面--listen.py 3. main ...

  3. python图形化界面教程_python图形化界面开发教程

    python图形化界面开发教程内容摘要 python图形化界面开发教程白萝卜:泰兴电工教程,白了点,白兰地是在红葡萄酒的基础.基金从业资格教程学校,白开水.苜蓿干草.提摩西干草.兔粮方法:白居易< ...

  4. 基于PyQt5的图形化界面开发——模拟医院管理系统

    基于PyQt5的图形化界面开发--模拟医院管理系统 0. 前言 1. 需求分析 2. 挂号界面的思路.UI界面代码及相应触发函数 2.1 思路分析 2.2 ui_guahao.py 2.3 相应的触发 ...

  5. c语言编程游戏界面,震惊!!!一个关于c语言图形化界面编程的小游戏-Go语言中文社区...

    关于C语言的图形化界面编程 第一个小程序<飞翔的小鸟> 效果图 本人也是小白,大家轻点喷!!!! 下面是源码 作者: @追风 #include #include #include #inc ...

  6. MySQL的图形化界面开发工具DataGrip的下载安装

    在日常的开发中,会借助于MySQL的图形化界面,来简化开发,提高开发效率.目前mysql主流的图形化界面工具,有Navicat.SQLyog.DataGrip等,最后一种DataGrip,这种图形化界 ...

  7. 震惊!!!一个关于c语言图形化界面编程的小游戏

    关于C语言的图形化界面编程 第一个小程序<飞翔的小鸟> 效果图 本人也是小白,大家轻点喷!!!! 下面是源码 作者: @追风#include<graphics.h> #incl ...

  8. python图形化界面开发工具,python如何做图形化界面

    Python tkinter能做出好看的图形界面么 谷歌人工智能写作项目:小发猫 python 图形化界面 使用wxpython,import wxapp = ()win = wx.Frame(Non ...

  9. C语言图形化界面是什么,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

最新文章

  1. dts插件 foobar pan baidu_SU插件插件库安装教程
  2. Nexenta和ParaScale发布开源存储产品
  3. Integer.ParseInt()异常
  4. zmeet会议在金融、教育和场景特点与产品功能方案
  5. KETTLE 新建数据库连接窗口无法打开错误 提示 XUL Definition 错误
  6. Openstack 高可用部署(Ocata版)
  7. 组建计算机网络通常采用3种模式,对等网的组建_计算机中的543原则_计算机网络工作模式(2)...
  8. joomla速度优化_WordPress v Joomla:搜索引擎优化
  9. java 常用四舍五入保留小数点后两位方法
  10. 软件测试人员必备思维,软件测试人员的思维
  11. css3中斜杠_使用斜杠语法设置CSS3边界半径
  12. 基于python Moviepy的视频字幕识别和合成!
  13. 【python爬虫】爬取Bing词典的单词存到SQLite数据库
  14. [翻译]2020年综述:基于深度学习的视频超分辨率
  15. mysql多对一[自用]
  16. allegro cadence bubble 灰色不可用
  17. 基于APP Designer 实现串口数据监测功能App总结(2)——app设计
  18. C语言,根据某员工的销售额计算销售提成,销售额小于1万,提成为5%,销售额大于1万,小于等于2万,提成为8%;售额大于2万,提成为10%。
  19. 小米8ios图标包下载_小米Max2开发版刷机包(最新官方固件rom包下载)
  20. 什么是以太网变压器?常用产品有哪些?百兆千兆万兆网络变压器产品图电路图原理图

热门文章

  1. python实现地理位置类数据爬取与geohash应用初探
  2. LINUX--创建新用户为新用户设置权限
  3. ctf php 流量分析题,CTF平台hackit题目分析与解答
  4. SSR解决了什么问题?
  5. Excel表格中多个文本内容快速合并到一个单元格内
  6. IBM X3400 m3 EFI platform initialization
  7. Python编程基础题(26-家务分配问题)
  8. ​​​​​​过滤器和拦截器详解
  9. Dubbo之默认协议dubbo
  10. macOS中安装zsh,并配置些重要插件