文档章节

ndk的学习(2)

y
 yanglingui
发布于 2017/02/08 17:31
字数 919
阅读 5
收藏 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

 

 

 

 

 

 

 

 

© 著作权归作者所有

y
粉丝 1
博文 135
码字总数 18801
作品 0
海淀
私信 提问
闲来无事,塔建了一下android ndk和简单的编译并安装运行apk

一、Android Ndk 下载地址 http://developer.android.com/tools/sdk/ndk/index.html#Installing 二、环境变量配质 1、创建环境变量名 ‘ANDROID_NDK’,变量名的值'D:androidandroid-ndk-r9'......

军歌
2013/08/28
0
0
NDK环境搭建和编译第一个程序

看了网上很多文档,学习很多前人的经验,也遇到很多问题,整理分享一下。 环境搭建:(windos XP操作系统) 1.到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/setup...

kelivin
2012/11/24
1K
1
FFMPEG for android 编译

标签(空格分隔): FFMPEG 最近在研究Android视频播放功能,网上有很多关于视频播放解码的库,但是作为程序员的我,还是希望能从源头出发,学习FFMPGE自然是势在必行了。 网上有关FFMPGE学习...

Sivin
2016/12/15
370
0
please define NDK_ROOT

刚开始学习cocos2d-x,第一步必须是把环境变量配置好。关于sdk ndk的下载都挺简单,就不加整理了。依据网上找的一些资料,进行如下配置 1.设置环境变量, 即在终端窗口编辑 sudo vi ~/.bas...

萌神明明
2014/03/30
0
0
程序员扪心自问:给你一份月薪40k的工作,你能胜任吗?

  最近打算换工作,搜了搜招聘网上安卓工程师的岗位,好多岗位月薪30k-40k,搜狗、新浪、爱奇艺、美团、挖财等都在招人,看得我激动      你是不是也心动了?也想得到这样的offer?打开...

Android群英传
2017/11/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)

文字检测是文字识别过程中的一个非常重要的环节,文字检测的主要目标是将图片中的文字区域位置检测出来,以便于进行后面的文字识别,只有找到了文本所在区域,才能对其内容进行识别。 文字检...

雪饼
今天
15
0
思维导图XMind 8 Pro 绿化方法(附序列号)

按部就班: Step 1 -全新下载最新版本的 Xmind 8(注必须是英文官方的版本,中文代{过}{滤}理网站的版本修改过,无法使用pj); Step 2 -安装完毕后,点击文末的下载按钮下载pj补丁文件包,将...

一只小青蛙
今天
10
0
数据结构(ER数据库)设计规范

表命名规范 表命名的规则分为3个层级,层级之间通过_分割,例如b_r_identity、d_l_identity。规约为: [leavel]_[type]_[name] [leavel] 表示数据库表的层级和功能,分为: s:业务无关的系统...

随风溜达的向日葵
今天
10
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
14
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
15
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部