ndk的学习(2)
ndk的学习(2)
yanglingui 发表于1年前
ndk的学习(2)
  • 发表于 1年前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

1.c代码的入口

//导入标准函数库 类似java的包
#include<stdio.h>
//导入标准函数库 system sizeof的方法
#include<stdlib.h>
void main(){
	//输出函数
	printf("helloword");
	system("pause");
}

2.c的基本数据类型

     int              =============     %d

     char           =============      %c

     float          ==============   %f

     double     ===============  %lf

     long        ==============      %ld

     short    =================  %x

     十六进制 ==================%x

     注意:

        1)没有byte , string

        2)控制台输出数据需要使用 --占位符

        3)输出地址的占位符    %p

 

 3.输入输出函数

#include<stdio.h>
//导入标准函数库
#include<stdlib.h>
void main(){
	int i = 12; 
	printf("清输入一个函数");
	//&i 是地址而不是值 
	scanf_s("%d", &i);//注意不同的编译工具对函数的支持不一样
	printf("你输入的数字是: %d",i);
	system("pause");

}

 

4.如何使用visual studio 创建新的项目

1)

2)

3)

4)导入标准函数库

#include<stdio.h>
//导入标准函数库
#include<stdlib.h>
void main(){

}

 

5.C语言的内存地址

1)取地址

2)根据地址取值

#include<stdio.h>
//导入标准函数库
#include<stdlib.h>
void main(){
	int i = 100;
	//输入i的值
	printf("i的值是:%d\n",i);
	//输出i变量的地址
	printf("i的地址值是%p\n:",&i);//&i 取出变量的地址 %p:地址的占位符
	//根据地址获取值
	printf("根据i的地址获取的值是:%d\n",*(&i));
	system("pause");
}

总结:  &  代表取地址           * 代表取地址的值

6.什么是变量名

对内存的空间里的一段数据的抽象

7.c语言的指针

#include<stdio.h>
//导入标准函数库
#include<stdlib.h>
void main(){
	int i = 99;
	printf("i的值是>>>%d\n",i);
	printf("i的地址是>>>%p\n", &i);
	int* p = &i;
	printf("指针变量p的值是>>>%p\n", p);
	system("pause");
}

指针就是指向地址的, 指针也是有地址的;地址不一样=内存不一样

int* : int 类型的指针变量 可以存储一个int 类型的变量地址

8.给变量赋值

1)直接赋值

2)间接地址赋值

#include<stdio.h>
//导入标准函数库
#include<stdlib.h>
void main(){
	int i = 0;
	//直接赋值;
	 i = 200;
	printf("i的值是:%d",i);
	int* p = &i;
	*p = 250;
	printf("i的值是:%d", i);
	system("pause");
}

 

7.通过方法改变量的值

1)错误

#include<stdio.h>
//导入标准函数库
#include<stdlib.h>
//形参和实参是两个不同的变量,也就意味着从新开辟了内存
void change(int a){
	a = 20;
	printf("形参a的地址是%p",&a);
}
void main(){
	//实参
	int i = 10;
	printf("实参i的地址是%p",&i);
	printf("修改前的值是%d\n ",i);
	change(i);
	printf("修改后的值是%d\n ", i);
	system("pause");

}

2)正确

#include<stdio.h>
//导入标准函数库
#include<stdlib.h>
//形参和实参是两个不同的变量,也就意味着从新开辟了内存
void change(int* a){
	*a = 20;
	printf("形参a的地址是%p",&a);
}
void main(){
	//实参
	int i = 10;
	printf("实参i的地址是%p",&i);
	printf("修改前的值是%d\n ",i);
	change(&i);
	printf("修改后的值是%d\n ", i);
	system("pause");

}

 

8.模拟外挂程序

1)

#include<stdio.h>
//导入标准函数库
#include<stdlib.h>
//形参和实参是两个不同的变量,也就意味着从新开辟了内存
//获取windows 系统的api;
#include<Windows.h>
void main(){
	int time = 60 * 10;
	while (time>0){
		time--;
		printf("还剩余游戏时间%d秒\n",time);
		Sleep(1000);
	}

}

2)标注以以下方法,允许外部程序执行

注意: windows98 系统之前是允许直接修改的

问题:  一个.exe 文件不能访问另一个.exe文件

解决办法:生成dll动态库,通过注入的方式修改其他程序的数据

a)设置属性----将配置属性设置为dll动态库

b)生成解决方案

c.通过第三方工具动态注入外挂

0x68f928

 

 

 

 

 

 

 

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 123
码字总数 18154
×
yanglingui
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: