C++
Water_tu
这个作者很懒,什么都没留下…
展开
-
Java调用c++ DLL
// 创建HelloTest.java文件,添加 public native int DLL_ADD(int a,int b);//cd到HelloTest.java文件所在目录//执行命令javac HelloTest.java,即生成HelloTest.class//执行命令javah Java2cpp生成Java2cpp.h头文件import java.lang.reflect.Field;public class HelloTest { public native i...原创 2021-08-30 16:48:36 · 259 阅读 · 0 评论 -
windows下 安装 ffmpeg
安装 msys2 pacman -Sy#安装64位pacman -S mingw-w64-x86_64-toolchain 解压FFMPEGtar jxvf ffmpeg-snapshot.tar.bz2安装yasm wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gztar zxvf yasm-1.3.0.tar.gz tar zxvf yasm-1.3.0.tar.gz cd yasm-1..原创 2021-03-21 23:12:04 · 494 阅读 · 3 评论 -
c++ 使用zlib压缩文本
#include<iostream>#include <stdlib.h>#include "zlib.h"#define MaxBufferSize 1024 * 100#pragma comment (lib,"zlibstat.lib")//http://www.winimage.com/zLibDll///需要下载 zlib123dllx64 和zlib-1.2.3.tar.gz ,// 把zlib-1.2.3.tar.gz里面的zlib.h 和zcon.原创 2021-03-17 16:28:38 · 2154 阅读 · 0 评论 -
linux 报错 /usr/bin/ld: cannot find -ljvm
找到libjvm.so,拷贝到 /usr/lib/下sudo cp /usr/lib/jvm/java-11-openjdk-amd64/lib/server/libjvm.so /usr/lib/libjvm.so原创 2021-01-30 03:42:51 · 455 阅读 · 0 评论 -
linux c++ 调用java
#include <stdio.h>#include <string> #include <iostream>#include <string>#include <thread>#include "windows.h" #include "jni.h" using namespace std;#ifdef _WIN32 || _WIN64 #pragma comment(lib,"jvm.lib")#pragm..原创 2021-01-30 13:31:29 · 466 阅读 · 1 评论 -
Linux libevent 入门
#include <event2/listener.h>#include <event2/bufferevent.h>#include <event2/buffer.h>#include <event2/thread.h>#include <arpa/inet.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#include.原创 2021-01-13 02:18:53 · 175 阅读 · 0 评论 -
udp 简单server和client
server.cpp#include <sys/types.h>#include <sys/socket.h>#include <pthread.h>#include <netinet/in.h>#include <arpa/inet.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib..原创 2021-01-12 00:50:42 · 1593 阅读 · 2 评论 -
c++ 从指定数据中随机抽取数据
#include <iostream>#include <ctime>#include <vector>std::vector<int> vpool{ 20,30,60,40 };void getOne(std::vector<int>& v1){ std::srand((unsigned)time(NULL)); int len =(int) vpool.size(); int tmpvalue = -1;.原创 2020-09-01 00:45:56 · 3454 阅读 · 0 评论 -
C++ 内存对齐规则
内存对齐的3大规则:对于结构体的各个成员,第一个成员的偏移量是0,排列在后面的成员其当前偏移量必须是当前成员类型的整数倍 结构体内所有数据成员各自内存对齐后,结构体本身还要进行一次内存对齐,保证整个结构体占用内存大小是结构体内最大数据成员的最小整数倍 如程序中有#pragma pack(n)预编译指令,则所有成员对齐以n字节为准(即偏移量是n的整数倍),不再考虑当前类型以及最大结构体内类型#include<iostream>using namespace std;struct A原创 2020-08-31 22:23:08 · 319 阅读 · 0 评论 -
c++ 从0到n-1的随机数
#include <ctime>#include <thread>int main(){ std::srand((unsigned)time(NULL)); std::cout << time(NULL) << std::endl; while (true) { int tmpvalue = rand() % 10000; //产生0-9999之间的随机数 std::cout << tmpvalue << ..原创 2020-08-01 19:26:19 · 324 阅读 · 0 评论 -
c++ 我对临时变量的理解
临时变量是一种如果没有变量来接收他,那么就释放的变量class A{public: A() { std::cout << " 1 A() \n"; } A(const A& aa) { std::cout << "拷贝构造 \n"; } ~A() { std::cout << " 2 ~A() \n"; }};//函数返回...原创 2020-07-24 11:16:44 · 240 阅读 · 0 评论 -
c++ std::map 中括号的坑
std::map<int, A> testmap;testmap[1]=1; //不存在元素会直接创建对象,在赋值,会有拷贝 //if (testmap[1]) //错误 //{ // std::cout << "111!\n"; //}testmap.insert(std::make_pair(1,A())); //正确,没有拷贝...原创 2020-06-10 22:50:52 · 2381 阅读 · 0 评论 -
c++ CJsonObject 库解析json
#include "CJsonObject.hpp"//CJsonObject下载地址 https://github.com/Bwar/CJsonObject//json解析 neb::CJsonObject json; if (json.Parse(dataStr)) //解析成功返回true { CELLLog_Info(" CJsonObject Parse Succeed. "); /* int msgid=0; if (!json.Get("msg.原创 2020-06-10 17:13:24 · 974 阅读 · 0 评论 -
select 1024限制
查看 fd_set 定义的所在文件vim /usr/include/linux/posix_types.h发现 __FD_SETSIZE 没有办法被重新定义,undef是解除存在的定义,不允许修改宏来修改fd_set的大小#undef __FD_SETSIZE#define __FD_SETSIZE 1024typedef struct { unsig...原创 2020-04-21 15:52:26 · 1025 阅读 · 0 评论 -
c++ 出现 multiple definition of 错误
本文件内使用的 加 static, 不要在头文件加extern原创 2020-03-29 21:37:03 · 497 阅读 · 0 评论 -
用Shell脚本实现 C++多目录编译
#!/bin/bash#compile.shcd `dirname $0`currentPath=`pwd`result=''#设置生成的可执行文件名字,可以从外部传入 ./compile.sh startappName=''if [ "X$1" != 'X' ]then appName=$1else appName='Start.out'fi f...原创 2020-03-23 21:59:27 · 394 阅读 · 0 评论 -
线性插值算法
从A变到Bvoid lerp(float A,float B){ float length=B-A; float value; //变化的结果值 //t=change-A/length; //t的取值0-1,change【A-B】 for(int change=A,change<B;++change) { t=change-A/...原创 2019-10-31 12:58:12 · 572 阅读 · 1 评论 -
c++ 正则表达式
"^" :^开始匹配的位置 "$" :$结束匹配的位置必须是数字字符,长度6-16之间std::string username;std::regex reg1("^[0-9a-zA-Z]{6,16}$");if(regex_match(username,reg1)) //是否匹配{}...原创 2019-09-30 15:48:30 · 138 阅读 · 0 评论 -
C++ 虚函数
//虚函数的作用: 通过一个基类的指针或引用,指向派生类的对象,来访问基类和派生类中的同名虚函数//,如果派生类有重新定义跟基类的一样的函数,则调用派生类的函数,否则调用基类的函数//在类外定义虚函数时,不必再加virtual//C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数。因此在派生类重新声明该虚函数时,//可以加virtual,也可以不加,但习惯...原创 2018-10-24 16:55:47 · 114 阅读 · 0 评论 -
C++ 字符串常量学习
//字符串常量在常量存储区,不允许修改值,程序结束后由系统释放 //str 存放的是字符串常量的首地址 const char* str = "hello"; cout << "=" << str << endl; //c++重载了<<,支持const char*显示字符串 printf("a address: %p\n"原创 2018-10-23 16:53:35 · 243 阅读 · 0 评论 -
UE4 枚举的声明
enum class EGameState:short{ Ewait, EPlaying,};原创 2018-10-21 16:12:31 · 1208 阅读 · 0 评论 -
UE4 获得GameMode
//获得当前游戏模式 //UGameplayStatics::GetGameMode(this); ACarDemoGameModeBase* CarGamemode; //转成自己定义的GameMode类 CarGamemode=Cast<ACarDemoGameModeBase>(UGameplayStatics::GetGameMode(this)); ...原创 2018-10-21 16:08:51 · 3985 阅读 · 0 评论 -
C++ 类的赋值和拷贝
#include "stdafx.h"#include <string.h> #include <iostream> class A{public: A() {} ~A() { std::cout << "析构" << std::endl; } A(int id, char* username_) :_id(id),us...原创 2018-10-25 16:04:23 · 1453 阅读 · 0 评论 -
UE4 延时调用(定时器)
//.h// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/GameModeBase.h"#include "PersonMoveGameModeBase....原创 2018-10-20 16:33:47 · 7526 阅读 · 1 评论 -
UE4 播放声音
.h文件public: UPROPERTY(EditDefaultsOnly, Category = "Sound") USoundCue* EngineSound; UPROPERTY(VisibleAnywhere,Category="Sound") UAudioComponent* AudioComp; void PlayEngine...原创 2018-10-20 15:29:23 · 2604 阅读 · 0 评论 -
C++ 算法一 交换算法
#include "stdafx.h"#include <iostream>//C语言//宏函数 交换#define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t))// 引用方式void swap(int &a, int &b){ int temp; temp = a; a = b; b = temp;}//...原创 2018-08-05 17:40:31 · 242 阅读 · 0 评论 -
C++ 智能指针 shared_ptr 基础
#include <memory>#include <iostream>void VersionOne(){ //malloc 资源分配不成功会返回一个空指针 //malloc 返回一个 (void*) // void*可以指向任何东西 //malloc 只分配内存没初始化 int* ageC = (int*)malloc(sizeof(int));...原创 2018-07-17 23:38:06 · 200 阅读 · 0 评论 -
std::chrono库
void test_chrono_duration(){ // template <class Rep, class Period = ratio<1> > class duration; //Rep表示一种数值类型,用来表示Period的数量,比如int float double //Period是ratio类型,用来表示【用秒表示的时间单位】 //rati...原创 2018-06-30 01:16:26 · 390 阅读 · 0 评论 -
C++ char[]和string 相互转换
char a[] = "12345teawtewat4335353"; std::string buffer(a,a+ strlen(a)); std::string buffer2(a); std::string buffer3=a; cout << buffer2 << endl; char buf[10]; string s...原创 2018-06-25 13:08:12 · 3284 阅读 · 1 评论 -
C++代码编译IOS库
1 建立工程,IOS-COcoa Touch Static Library 2、设置项目名字 3 设置 4 把C++代码文件放进项目5、 Product-Scheme-EditScheme-Run-BuildConfigure 设为Release6、Build AndRun ...原创 2018-12-24 20:44:00 · 1693 阅读 · 0 评论 -
C++ vector 根据位置进行翻转
#include <cassert>#include <algorithm>#include <iostream>#include <iterator>#include <vector>//假设有一个容器里面存的数据是无序.// 假如是1 5 3 5 6 7 100//函数传入这个容器和一个位置值 比如是3 //函数...原创 2018-12-29 21:52:43 · 2207 阅读 · 0 评论 -
指针的指针
//指向指针的指针:用来指向指针变量 的变量,简称 指向指针的指针 //*(*p) //表示 指针变量p 是 指向一个 指针变量,*p 是p 所指向的 指针变量 char** cp1; //定义了一个指向 字符串指针变量的 指针变量 int** p2; //定义了一个指向 整型指针变量的 指针变量 const char* pName[] = { "CP...原创 2019-03-29 11:41:21 · 103 阅读 · 0 评论 -
c 常用字符串函数
//strcat(字符数组1,字符数组2) //连接两个字符数组中的字符串,把字符串2连接到字符串1后边 //字符串数组1必须足够大,能够容纳连接后的新字符串 //连接后只在新字符串最后保留一个\0 char str1[10] = "one"; char str2[10] = "two"; strcat(str1, str2); ...原创 2019-03-26 16:48:27 · 124 阅读 · 0 评论 -
Window下的 OpenGL ES2.0 配置
百度搜索AMD's OpenGL ES 2.0 Emulator下载AMD's OpenGL ES 2.0 Emulatorhttps://developer.arm.com/products/software-development-tools/graphics-development-tools/opengl-es-emulator/downloads下载之后的文件是 Mali_O...原创 2019-01-23 14:19:34 · 1217 阅读 · 0 评论 -
Visual Assist插件 VA_X.dll 位置
C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\15.0_46c7cf6b\Extensions\d1s1khxe.4ck原创 2019-01-21 23:06:07 · 1669 阅读 · 0 评论 -
C++ WinMain创建一个空白窗体
#include <windows.h>#include <tchar.h>//消息处理函数LRESULT CALLBACK WndProc(HWND hWnd, UINT msgId, WPARAM wParam, LPARAM IParam){ switch (msgId) { case WM_CLOSE: case WM_DESTROY: ...原创 2019-01-21 22:22:24 · 1398 阅读 · 0 评论 -
C++ enum class
enum class NewColor { Red, Green = 20,Blue };void testNewEnum(){ NewColor r = NewColor::Blue; switch (r) { case NewColor::Red: break; case NewColor::Green: break; case NewColor::Blue: ...原创 2019-01-06 22:02:05 · 435 阅读 · 0 评论 -
C++ 字符串翻转
#include <stdio.h>#include <string.h>#include <algorithm>void transOrderC( char* data){ auto l = strlen(data); if (l < 1) return; auto m = l / 2; auto start = 0; while ...原创 2019-01-06 20:17:10 · 241 阅读 · 1 评论 -
按位运算
//位 //一个字节由8个二进制位组成。最左边的称为最高位,最右边的称为最低位 //每一个二进制位的值是0或1 (二进制数,只有0,1) // 0000000( 0 ) - 11111111 (255 ) //位运算 针对位运算 // & 按位与 ,如果两个相应的位都为1,则该位结果为1,否则为0 // | 按位或 ,如果两个相应的...原创 2019-01-01 23:28:27 · 478 阅读 · 0 评论 -
C++ STL 扩展
#include <iostream>#include <algorithm>#include <vector>#include <map>#include <string>//#include <utility>class Mydata{public: Mydata() { data = 0; }...原创 2019-01-05 19:05:27 · 309 阅读 · 0 评论