自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android关于手机和模拟器的区分

在网上试了很多区分方法感觉都被模拟器破了,只能说一句模拟器太强大了,当我快要放弃的时候,突然想到个方法,方法分为获取手机的短信,获取手机的图片,获取手机的通讯录,一个正常的用户不可能没有这些信息,当然这些需要用户同意授权,所以当这些没用没授权的时候,我们就要执行第二个方案,那就是获取手机的温度和电量电压,分别在刚启动游戏或者软件时获取一次数据,然后用户登录是获取一次数据,如果两次数据一样那就是模拟器,用这两个方案结合我试了夜神模拟器,雷电模拟器,蓝叠模拟器都可以检测到是模拟器,下面我放上Android代码:

2021-05-26 11:32:24 1468 9

原创 Unity接入越南社交软件Zalo登录之获取用户信息

根据Unity接入越南社交软件Zalo登录(Android)之SDK接入接入SDK后,需要获取用户name,id,头像,性别的信息,这一篇文章教你如何获取根据官网文档获取用户信息APIZaloSDK.Instance.getProfile(Context ctx, ZaloOpenAPICallback callback, String[] fields)参数:1.ctx: application context2.callback:回调方法,返回Josn{ "id": "UserId

2021-04-30 12:13:27 2989 2

原创 Unity接入越南社交软件Zalo登录(Android)之SDK接入

Zalo登录注册前的准备工作由于国内网络无法直接打开Zalo页面,因此需要一个较稳定的VPN。创建开发者账号登录Zalo开发者后台可以在网页最底部把网页设置为英文创建自己的应用1.点击右上角【创建应用】2.创建好应用后记录Application ID和Application secret key 并点击Log in3.点击Android,填写Package name(unity包名)、Hash key。如何获取Hashkey,他这里是需要SHA1,我们可以通过:1、win+R 打

2021-04-30 11:46:36 14764 9

原创 Unity2019接入FaceBook登录详解(Android)

Unity接入FaceBook如何获取FaceBook SDKUnity导入Facebook SDKUnity代码如何获取FaceBook SDK注册前的准备工作由于国内网络无法直接打开Facebook页面,因此需要一个较稳定的VPN,我使用的是SS,但是类似的软件还有很多,大家可以视自己的情况而定。创建开发者账号登录Facebook开发者后台创建自己的应用1.点击右上角【创建应用】2.创建好应用后记录AppId并进入设置界面3.点击添加平台,添加Android并填写Google Pla

2021-04-15 15:08:37 2577

原创 Linux命令合集

ls 命令命令 ls 是 list 的缩写其作用是列出指定位置的文件和文件夹如果没有指定,默认是列出当前位置的文件或者文件夹常用的参数有:-a 列出所有的文件或者文件夹在 Linux 系统里面,以 . 开头的文件或者文件夹,一般会被默认视为隐藏的,如果想要查看这些隐藏文件或者文件夹,最好使用-a 参数-l 列出详细信息默认 ls 只显示名字,并不显示详细信息加了该参数后,除了会显示名称以外,还会显示文件的权限、所属用户、分组、大小、修改 日期-h 增加可读性默认文件是按照字节为单位显示

2021-03-19 14:19:23 225

原创 C++进程

如何创建一个进程CreateProcess CreateProcessA( _In_opt_ LPCSTR lpApplicationName,// 该字符串可以指定要执行的模块的完整路径 和文件名,一般为NULL; _Inout_opt_ LPSTR lpCommandLine,//命令行 _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,//该 结构确定子进程是否可以继承返回到新进程对象的句柄。如果lpProcessAttributes为NU

2021-03-13 20:11:45 497

原创 多线程实现 qq 群聊的服务端和客户端

效果比较简陋,但是功能可以实现效果:服务器#include <iostream>#include <winsock2.h>//必须写在windows.h前面#include <windows.h>#pragma comment(lib,"ws2_32.lib")#define MAX_CLI 256#define Max_Buf_Size 1024SOCKET cliSocket[MAX_CLI];int cliCount = 0;HANDLE

2021-03-11 02:31:04 245

原创 C++多线程

为什么使用多线程避免阻塞 大家知道,单个进程只有一个主线程,当主线程阻塞的时候,整个进程也就阻塞 了,无法再去做其它的一些功能了。避免 CPU 空转 应用程序经常会涉及到 RPC,数据库访问,磁盘 IO 等操作,这些操作的速度比 CPU 慢很多,而在等待这些响应时,CPU 却不能去处理新的请求,导致这种单线 程的应用程序性能很差。 cpu > 内存 > 磁盘提升效率 一个进程要独立拥有 4GB 的虚拟地址空间,而多个线程可以共享同一地址空间, 线程的切换比进程的切换要快得多。创建线程

2021-03-09 22:48:35 709

原创 网络编程实战之网络文件截取---隐藏进程与修改注册表

客户端发给别人,只要打开一次就添加在系统启动项里,只要服务端打开每次都会获取文件,只是个简单的demo服务器端在这里插入代码片#include <iostream>#include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")using namespace std;void ErrorHanding(const char* msg){ fputs(msg, stderr); fputc('\n', stderr);

2021-03-09 01:23:48 155

原创 Windows编程创建窗口流程

#include <windows.h>#include <stdio.h>LPCTSTR ClassName = "My";LPCTSTR msgName = "Frist";LRESULT CALLBACK MyWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPS

2021-03-05 16:14:41 265

原创 Windows网络编程

面向连接与面向消息(TCP/UDP)面向连接的套接字(TCP):1.传输过程中数据不会丢失2.按顺序传输数据3.传输过程中没有数据边界面向消息的套接字(UDP):1.强调快速传递而非顺序2.传递过程中数据可能丢失或者损坏3.限制每次传输的数据大小4.传输过程中有数据边界...

2021-03-04 11:53:08 427 2

原创 C++多态动态强制转换

dynamic_cast

2021-03-04 11:43:14 240 1

原创 c++继承

**C++继承**如果不想让其他类继承可以加上final如:class MyClass final{};

2021-01-21 15:56:58 61

原创 C++重载运算符

C++重载运算符语法:返回值 operator运算符()例子:#include <iostream>class Drug{ int Hp;public: Drug(int hp):Hp(hp) {} int GetHp() const { return Hp; }};class Role{ int Hp; int MaxHp;public: Role(int hp,int maxHp):Hp(hp),MaxHp(maxHp) {} int GetH

2021-01-09 00:44:52 533

原创 类练习1

方法1:用动态分配内存实现#include <iostream>class hString{private: char* string; unsigned short len; unsigned short length(const char* str) { unsigned short len = 0; while (str[len]) { len++; } return len; }public: hString() { len = .

2021-01-04 21:03:15 148

原创 explicit作用

C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).explicit关键字的作用就是防止类构造函数的隐式自动转换.explicit关键字只对有一个参数的类构造函数有效, 如果类构造函数参数大于或等于两个时, 是不会产生隐式转换的, 所以explicit关键字也就无效了但是, 也有一个例外, 就是当除了第一个参数以外的其他

2020-12-28 23:29:19 567

转载 const修饰类成员函数

const修饰类成员函数const 修饰类成员函数,其目的是防止成员函数修改被调用对象的值,如果我们不想修改一个调用对象的值,所有的成员函数都应当声明为 const 成员函数。注意:const 关键字不能与 static 关键字同时使用,因为 static 关键字修饰静态成员函数,静态成员函数不含有 this 指针,即不能实例化,const 成员函数必须具体到某一实例。例子:#include<iostream> using namespace std; class Test{

2020-12-22 16:10:13 632

原创 C++如何创建自己的库文件以及运用

**创建**右键工程点击属性选择常规->配置类型->静态库(.lib)点击生成,找到生成出来的.lib和自己创建的.h文件这样就可以打包给别人用了**运用**点开属性->VC++目录->包含目录,添加地址目录,用;隔开,这一步是用于读取.h文件然后库目录同上,这一步是读取.lib文件在需要用的代码中加上下面的就可以用了,有两种方法1.使用#pragma comment (lib,“XXXX.lib”)2.直接在属性->链接器->输入-&

2020-12-15 17:41:30 2648

原创 extern“C“

**extern “C”用于C语言和C++语言相互调用**声明一个变量extern int a;声明一个C风格的函数extern "C" int Add(int a,intb);声明一群C风格的函数extern "C" { int Add(int a,intb); int Eva(int a,intb);}把头文件内的内容声明为C风格extern "C" { include "emath.h" include "pmath.h"}注:C语言不支持重载作用

2020-12-15 17:22:09 211

原创 调用其他脚本函数方法

1.调用其他.cpp脚本函数:只需要在需要调用函数的脚本里声明一下函数方法例子:其他脚本里写的方法int Add(int a,int b) { return a + b;}需要调用函数的脚本int Add(int a,int b);void main() { Add(1, 2);}2.调用.h里的函数例子:写在emath.h里的方法int Add(int a,int b) { return a + b;}需要调用函数的脚本#include "emath"void

2020-12-13 20:07:48 427

原创 控制台打开c++程序并且模拟注册程序,并打印,无string,char模拟string函数处理字符串

#include <iostream>#include <string>struct ZhanghaoInfo{ char* id; char* pass; char* country;};bool Help(const char* str) { if (str == "/?") { std::cout << "123"; return true; } return false;}int GetIndex(const char.

2020-12-01 17:32:27 68

原创 如何用控制台cmd打开你的c++程序

**控制台打开c++程序**控制台每个命令其实就是一个就是一个控制台应用程序1.需要把控制台的起始地址修改成你放控制台应用程序的地址,把生成出来的c++控制台应用程序放入2.在控制台内输入你的程序名就可以运行了具体操作流程:**手动修改起始地址**Win键+R键再按回车键进入控制台输入你程序所在的硬盘分区,我的是D盘,输入d:即可输入cd+空格后面接你放程序的文件目录输入你程序的程序名即可运行这种是手动修改目录,还有一种是把文件目录设成默认**默认起始地址方法**

2020-11-25 10:58:44 5141

原创 体现函数传参的本质的例子

#include <iostream>#include <stdarg.h>void Printf(int count, ...){ va_list ap; va_start(ap, count); for (int i = 0; i < count; i++) { std::cout <<va_arg(ap,int)<<"\n" ; }}void main(){ int c = 10; Printf(4,c = c +

2020-11-24 09:42:46 112

原创 C++知识点累积(九)函数

2020-11-23 C++知识点累积(九)**数组参数如何传参**为什么传递数组的时候一定要带一个数组长度count参数:因为不确定传过来的数组长度是多少**多维数组传参**前面的数组长度可以不用写,但是后面的数组长度必须确定...

2020-11-23 17:13:23 222

原创 string求出长度(含中文,中文算1个长度)

#include <iostream>#include <string>int main(){ std::string str; std::cin >> str; int count{ 0 }; for (int i = 0; str.length(); i++) { if (str[i] < 0 || str[i]>127) { count++; i++; } } std::cout << count;

2020-11-21 16:07:07 906

原创 c++错误合集(持续更新。。。)

#include <iostream>#include <string>int main(){ char a = 'a'; char* cstr = new char[5]; cstr = &a; std::cout << *cstr<<std::endl; delete[] cstr;}是不是因为cstr的地址是new出来的(堆),后面把cstr指向栈里的地址a,改变了指针地址,delete不能释放栈里的内存...

2020-11-18 09:39:25 179

原创 C++知识点累积(八)字符串(std::string)

2020-11-16 C++知识点累积(八)std::string头文件:#include 格式:std::string 变量名{字符串};例如:std::string str{ "abcdefg"};从字符串最开始截取字符功能:#include <iostream>#include <string>int main(){ std::string str{ "abcdefg",3 };//截取字符串前三个 std::cout << str;}

2020-11-16 17:47:21 1197

原创 C++知识点累积(七)联合体

**2020-11-16 C++知识点累积(六)****union(联合体)**一.语法union 联合体名称{变量类型 变量名;…};例如:#include <iostream>union A{ int a; int b; int c; int d; short e;};union B{ long long a; short b;};int main(){ std::cout << sizeof(A) <&lt

2020-11-16 16:31:33 96

原创 c++加减乘除计算器

#include <iostream>#include <conio.h>#include <string>void main(){ char str[0xFF]; do { system("cls"); float a{}; float b{}; int count = 1; int isOperating = -1; bool isFirst = true; std::string text{ "按任意键重置,继续计算\n"

2020-11-13 15:58:21 1855

原创 char[]字符数组(字符串)求出数组长度(含中文,中文算1个长度)

#include <iostream>int main(){ char str[0xFF]; std::cin >> str; int i{ 0 }; int count{ 0 }; while (str[i] != '\0') { if (str[i] <0||str[i]>127) { i++; } i++; count++; } std::cout << count;}思路:因为在中文编码中大于127

2020-11-12 09:28:32 2350

原创 C++知识点累积(六)(指针)

**2020-10-15 C++知识点累积(六)****一、指针**#include <iostream>int main(){ int a{ 5200 }; std::cout <<"a的值:"<< a<<std::endl; int* pa = &a; std::cout <<"pa的值:" <<pa<<"\n*pa的值:"<<*pa << std::endl;

2020-11-11 09:49:55 168

原创 c++随机数加随机种子(用时间为随机种子)随机每次运行都不同

**srand()**功能:初始化随机数发生器用法:srand(unsigned int seed)需要头文件:stdlib.h返回值:void无返回值rand() 产生的随机数在每次运行的时候都是与上一次相同的。若要不同, 用函数 srand() 初始化它。可以利用 srand((unsigned int)(time(NULL)) 的方法,产生不同的随机数种子,因为每一次运行程序的时间是不同的。实例:#include <iostream>#include <stdli

2020-11-10 14:12:48 3674

原创 输入一串字符串,判断里面有多少大写字母,小写字母,数字,空格和特殊字符

#include <iostream>#include <string>void main() { std::string str; std::cout << "请输入一段字符串"; getline(std::cin,str); int lower = 0; int upper = 0; int number = 0; int space = 0; int other = 0; for (int i =0;i < str.length();

2020-11-05 11:18:18 4393

原创 不用第三个变量,交换两个变量值(位运算)

#include <iostream>void main() { int a, b; std::cout << "a="; std::cin >> a; std::cout << "b="; std::cin >> b; a = a ^ b; b = a ^ b; a = a ^ b; std::cout << "a=" << a << "\n" << "b=" <<

2020-11-04 21:43:46 209

原创 c++技能系统练习(指针和new)

#include <iostream>#include <string>#include <iomanip>struct JiNeng{ std::string Name; int NeedMP; int NeedSP; int ACT; int ACTB;};struct UsSkill { JiNeng* jineng; int LV; int Cold; bool IsUse;};struct Players{ std..

2020-11-03 11:16:46 164

原创 位运算:16进制改变某个位置的值(模拟灯光开关)

#include <iostream>#include <iomanip>void bithandle(unsigned int value, int bit){ using namespace std; unsigned int temp = value; value= 0xFFFFFFFF << bit; unsigned int val0 = 0xFFFFFFFF; val0=val0 >> (32 - bit+4); value=v

2020-11-02 16:06:20 650

原创 C++控制台五子棋(带背景音乐)

**五子棋**#include <iostream>#include <string>#include <conio.h>#include <windows.h>#include "mmsystem.h" //BGM 函数 头文件#pragma comment(lib, "winmm.lib")HANDLE hOutput;//句柄COORD coord = { 0,0 }; //控制台屏幕上的坐标(结构体)std::string

2020-10-28 10:26:11 1409 1

原创 c++输出爱心小程序

**输入数值可以得到不同大小的爱心形状**#include <iostream>#define y x / 4#define s ((x + 1) - 3 * y) / 2 int main() { int x; std::cout << "请输入最小10,并且以加8递增:"; std::cin >> x; int a = 1; for (int i = 0; i <= x; i++) { for (int j = 0;

2020-10-21 20:46:53 8863 2

原创 c++数组排序插入

**解题1:****std::vector**#include <iostream>#include <vector>int main(){ std::vector<int> a {1, 3, 14, 25, 31, 32, 58, 73, 98, 105}; int x{}; std::cin >> x; int* pa = &a[0]; for (int i = 0; i < 11; i++) { if (.

2020-10-17 12:08:13 331

原创 C++知识点累积(五)

**2020-10-12 C++知识点累积(五)****一、**partial**二、**getchar()函数名:getchar()头文件:stdio.h功 能:从I/O流中读字符原 型:int getchar(void);getch()函数名:getch()头文件:conio.h功 能:从控制台读取一个字符,但不显示在屏幕上原 型:int getch(void)返回值:读取的字符getche()函数名:getche()头文件:conio.h功

2020-10-12 22:01:02 305

c++控制台五子棋(带背景音乐)

五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏。 五子棋有两种玩法。玩法一:双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连线者获胜。玩法二:自己形成五子连线就替换对方任意一枚棋子。被替换的棋子可以和对方交换棋子。最后以先出完所有棋子的一方为胜。 五子棋的棋具与围棋通用,是一种传统的棋种。 五子棋容易上手,老少皆宜,而且趣味横生,引人入胜:它不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

2020-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除