c/c++
张拓1070410059
一生所求不过“心安”二字。
吾日三省吾身。
事无不可对人言。
逝者如斯夫!不舍昼夜。
展开
-
多网卡udp组播,客户端收不到
多网卡组播的时候,发送端要遍历本地ip,给每个ip都发组播包,不能使用。原创 2022-09-23 17:27:51 · 2302 阅读 · 0 评论 -
ue4c++扫雷
ue4c++写的扫雷demo。原创 2022-07-27 16:58:34 · 311 阅读 · 0 评论 -
ue4c++格式化字符串
ue4c++格式化字符串。原创 2022-07-27 16:55:02 · 1133 阅读 · 0 评论 -
全局消息钩子代码
代码#ifndef __UdiskHook_h__#define __UdiskHook_h__#include // http://blog.csdn.net/defaultbyzt#ifdef __cplusplusextern "C" {#endif#define DLL_EXPORT // #ifdef DLL_EXPO原创 2013-09-25 17:03:00 · 3871 阅读 · 0 评论 -
windows服务中以 管理员权限\普通权限 启动进程
windows 服务中以用户管理员权限或普通权限启动进程// 管理员权限启动进程#ifdef UNICODEMMSYSSHARED_EXPORT bool CreateProcessWithAdmin(const std::wstring& exe, const std::wstring& param, bool show)#elseMMSYSSHARED_EXPORT bool CreateProcessWithAdmin(const std::string& exe,原创 2022-03-29 11:37:05 · 3822 阅读 · 0 评论 -
boost 普通用户读取SYSTEM创建的共享内存
boost 共享内存 权限 #include <boost/interprocess/shared_memory_object.hpp> #include <boost/interprocess/mapped_region.hpp> #include <boost/interprocess/windows_shared_memory.hpp> #define USER_WIN_SHARE_MEMORY 0// 创建bool ShareMemory原创 2022-03-23 18:32:27 · 1389 阅读 · 0 评论 -
c++ 调用c# dll修改win10锁屏背景
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;using Windows.Storage;using Windows.System.UserProfile;using Windows.Foundation.Metadata;namespace LockscreenWin10{原创 2022-03-19 16:08:16 · 1276 阅读 · 0 评论 -
c++ 调用C# 的DLL
c++ 调用C# 的DLL1. 修改cpp属性常规-》公共语言运行时支持-》选择`/clr`代码生成-》启用c++异常-》选择`否`代码生成-》基本运行时检查-》选择`默认值`命令行-》其它选项-》输入`/Zc:twoPhase-`2. c#代码3. c++ 代码4 输出1. 修改cpp属性常规-》公共语言运行时支持-》选择/clr常规-》调试信息格式-》选择无代码生成-》启用c++异常-》选择否代码生成-》基本运行时检查-》选择默认值命令行-》其它选项-》输入/Zc:twoPhase原创 2022-03-19 13:50:33 · 2860 阅读 · 2 评论 -
windows编译libzip vs2017
windows编译libzip vs20171 下载2 打开工具3 编译zlib4 编译libzip参考:1 下载libzip-1.8.0zlib-1.2.11解压到H:\devel(自定义)2 打开工具打开vs 2017的开发人员命令提示符3 编译zlibcd cd devel\zlib-1.2.11mkdir buildcd buildcmake .. -G"Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="h:\inclu原创 2022-03-15 18:36:54 · 1639 阅读 · 0 评论 -
zlib minizip 压缩和解压目录
zlib压缩和解压压缩代码解压代码压缩代码#pragma once#ifndef ZIPHELPER_H#define ZIPHELPER_H#include <string>#include "zlib\unzip.h"#include "zlib\zip.h"class ZipHelper{public: ZipHelper(); ~ZipHelper(); bool UnzipDir(const std::string& unpackPa原创 2022-03-15 17:07:48 · 2175 阅读 · 0 评论 -
windows system模拟普通用户执行函数
bool ChangeToken(const std::string &path){#define INFO_BUFFER_SIZE 32767 char infoBuf[INFO_BUFFER_SIZE]; DWORD bufCharCount = INFO_BUFFER_SIZE; if (!GetUserNameA(infoBuf, &bufCharCount)) { LOG_ERROR("G原创 2022-03-04 17:21:37 · 518 阅读 · 0 评论 -
python根据SVN版本号生成version.h
python生成version.h#!/usr/bin/python# -*- coding: UTF-8 -*-import sysimport reimport osdef open_file(name, flag): try: f = open(name, flag) return f except BaseException: return None return Nonedef run(): try原创 2022-02-17 10:31:48 · 630 阅读 · 0 评论 -
windows服务在桌面打开文件
windows服务中以默认方式打开文件run.bat代码run.batstart "" %1 代码#include "windows.h"#include <WtsApi32.h>#include <UserEnv.h>#include <tlhelp32.h>#include "base/charset.h"#include <tchar.h>#include <winbase.h>#pragma comment(lib,原创 2022-01-26 13:46:52 · 704 阅读 · 0 评论 -
boost 拆分字符串
boost 拆分字符串例子:Function template splitSynopsisDescriptionParameters:InputPredResulteCompressReturns:例子:std::vector<std::string> ipsVec;ips="192.168.1.4;192.168.1.5;192.168.1.6;";boost::split(ipsVec, ips, boost::is_any_of(";"));Function template原创 2021-11-09 14:25:55 · 1045 阅读 · 0 评论 -
使用boost解析有中文的json
使用boost解析有中文的json代码输出代码// 解析JSONvoid TestBoostJson() { std::cout << "TestBoostJson" << "\n"; // serialize boost::json::object org; org["name"] = "你好啊\\ AA BB CC 联通 鸡蛋灌饼 !()"; std::cout << "name:\t"<<org["name原创 2021-11-02 15:17:08 · 1083 阅读 · 0 评论 -
c++http服务收到中文乱码
c++http服务收到中文乱码http发送的bodyc++http服务收到的先使用boost解析json boost::json::error_code ec; boost::json::parse_options opt; // all extensions default to off opt.allow_comments = true;原创 2021-11-02 14:45:25 · 1443 阅读 · 0 评论 -
asio的http服务
asio的http服务代码代码#include <string>#include <memory>#include <iostream>#include "boost/asio.hpp"class HttpConnect : public std::enable_shared_from_this<HttpConnect>{public: HttpConnect(boost::asio::io_context& io) : m_原创 2021-09-08 16:20:58 · 1103 阅读 · 0 评论 -
c++17 std::variant
c++17 std::variant说明代码输出参考说明类模板 std::variant表示一个类型安全的联合体。 std::variant 的一个实例在任意时刻要么保有其一个可选类型之一的值,要么在错误情况下无值(此状态难以达成,见 valueless_by_exception )。与联合体在聚合初始化中的行为一致, 若 variant 保有某个对象类型T的值,则直接于 variant的对象表示中分配 T 的对象表示。不允许 variant分配额外的(动态)内存。variant 不容许保有引用、数原创 2021-09-07 16:00:07 · 2027 阅读 · 0 评论 -
c++17 launder
c++17 launder代码代码#include <new>#include <cstddef>#include <cassert>#include <iostream>struct X { const int n; // 注意: X 拥有 const 成员 int m;};struct Y { int z;};struct A { virtual int transmogrify();};st原创 2021-09-07 10:34:57 · 336 阅读 · 0 评论 -
c++17 to_chars、from_chars、if、结构化绑定
c++17 to_chars、from_chars、if、结构化绑定说明std::to_charsstd::from_chars示例代码输出参考说明std::to_chars通过成功填充范围 [first, last) ,转换 value 为字符串,要求 [first, last) 是合法范围。整数格式化函数: value 以给定基底 base 转换成数位的字符串(无冗余的前导零)。范围 10…35 (含上下限)中的数字被表示成小写字母 a…z 。若值小于零,则表示以负号起始。库提供所有有符号及无原创 2021-09-07 10:07:56 · 2947 阅读 · 0 评论 -
c++17 apply、tuple
c++17 apply说明代码输出参考说明以参数的元组调用可调用(Callable) 对象 。元组不必是 std::tuple ,可以为任何支持 std::get 和 std::tuple_size 的类型所替代;特别是可以用 std::array 和 std::pair 。代码#include <iostream>#include <tuple>#include <utility>int add(int first, int second) { ret原创 2021-09-06 16:53:36 · 471 阅读 · 0 评论 -
c++17中的any、for_each、and_eq
c++17中的any描述代输出参考描述类 any 描述用于任何类型的单个值的类型安全容器。类 any 的对象存储任何满足构造函数要求的类型的一个实例或为空,而这被称为 any 类对象的状态。存储的实例被称作所含对象。若两个状态均为空,或均为非空且其所含对象等价,则两个状态等价。非成员 any_cast 函数提供对所含对象的类型安全访问。鼓励实现避免小对象的动态分配,但这种优化仅可以应用于 std::is_nothrow_move_constructible 对其返回 true 的类型。代码原创 2021-09-03 10:47:28 · 525 阅读 · 0 评论 -
c++17遍历目录
c++17遍历目录代码参考代码//#define _CRT_SECURE_NO_WARNINGS#include <ctime>#include <iostream>#include <filesystem>// -lstdc++fs// 使用此库可能要求额外的编译器/链接器选项。 // 9.1 前的 GNU 实现要求用 -lstdc++fs 链接,而 LLVM 9.0 前的 LLVM 实现要求用 -lc++fs 链接。int main(){原创 2021-09-02 17:15:58 · 1074 阅读 · 0 评论 -
c++标准中的时间函数
c++中的时间函数说明代码说明// Time manipulation// clock// returns raw processor clock time since the program is started // (function)// time // returns the current time of the system as time since epoch// (function)// difftime// computes the difference b原创 2021-09-02 10:27:21 · 238 阅读 · 0 评论 -
c++取网络收发字节数
c++取网络收发字节数#ifndef UNICODE#define UNICODE#endif#include <winsock2.h>#include <ws2tcpip.h>#include <iphlpapi.h>#include <stdio.h>#include <iostream>#pragma comment(lib, "iphlpapi.lib")void ShowInterfaceInfo();void原创 2021-08-12 16:11:47 · 554 阅读 · 0 评论 -
c++ 读取注册表,读取服务安装位置
c++ 读取注册表bool DogWork::GetServicePath(const wchar_t * name, mm::mstring & path){ bool res = false;#ifdef WIN32 // GetServiceDisplayName() mm::mstring lpSubKey(TEXT("SYSTEM\\CurrentControlSet\\services\\")); lpSubKey += name; do原创 2021-07-06 15:57:26 · 473 阅读 · 0 评论 -
boost asio udp广播客户端
boost asio udp客户端class UdpClientTest{public: UdpClientTest(boost::asio::io_context& io) : io_context_(io) , socket_(io_context_) { } bool IsInit() { return m_init; } bool Init(unsigned short po原创 2021-06-18 11:52:11 · 1816 阅读 · 0 评论 -
c++windows服务示例
完整的服务示例[c++]代码下面是一个完整的服务示例。代码#include <windows.h>#include <tchar.h>#include <strsafe.h>#pragma comment(lib, "advapi32.lib")#define SVCNAME TEXT("SvcName")SERVICE_STATUS gSvcStatus;SERVICE_STATUS_HANDLE gSvcStatusHan转载 2021-05-21 11:28:15 · 1314 阅读 · 0 评论 -
c++ ustar格式读写
#pragma pack(1) //一字节对齐/* * This is the ustar (Posix 1003.1) header. */typedef struct _ustar_header{ char name[100]; /* 0 Dateiname */ char mode[8]; /* 100 Zugriffsrechte */ char uid[8]; /* 108 Benutzernummer */ char gid[8]; /*原创 2021-04-09 15:54:03 · 333 阅读 · 0 评论 -
Windows编译FreeRDP
Windows编译FreeRDP需要准备的工具1、安装CMake (cmake-gui)2、安装`Visual Studio Community 2017`3、下载`FreeRDP`源码4、下载`libusb`5、安装`openssl `生成VS解决方案1、配置FreeRDP源码和生成路径2、选择要生成的解决方案3、配置libusb路径4、生成解决方案编译FreeRDP解决方案1、修改项目属性2、编译解决方案3、测试4、使用`wfreerdp.exe`时需要打包的dll(Release版)需要准备的工具原创 2020-08-19 15:52:33 · 4834 阅读 · 5 评论 -
uos配置达梦ODBC
1。安装unixODBC下载unixODBC,编译并安装2。配置 odbcins.inivim /etc/odbcinst.ini[DM]Description=DM ODBCDriver=/home/dmdba/dmdbms/bin/libdodbc.so/home/dmdba/dmdbms/是达梦数据库的安装路径3。配置odbc.ini测试vim /etc/odbc.ini[dm]Description=DMDRIVER=DMSERVER=127.0.0.1DATABASE原创 2020-07-16 11:40:07 · 1516 阅读 · 0 评论 -
定时提醒工具
定时提醒的工具。可按 每小时、每天、每周定时响铃。代码:https://gitee.com/user.zt/Reminding原创 2019-12-16 16:48:59 · 294 阅读 · 0 评论 -
std::list的sort方法
std::list::sort对容器中的元素进行排序sort默认使用operator < 比较元素来执行排序。#include <iostream>#include <list>#include "test_list_sort.h"int main(){ std::list<test_list_sort> ltls; ltl...原创 2019-12-13 11:05:41 · 4702 阅读 · 0 评论 -
记录一些时间处理的方法
1、使用COleDateTime和COleDateTimeSpan类获取当月天数int GetThisMonthDays(){ COleDateTime time, nextMonth; SYSTEMTIME stLocal; GetLocalTime(&stLocal); time.GetAsSystemTime(stLocal); time....原创 2019-11-27 16:52:14 · 249 阅读 · 0 评论 -
关于std::function和std::bind绑定成员函数
关于std::bind绑定成员函数与虚函数的方法。#include #include using namespace std;class A{public: A() :m_a(0){} ~A(){} virtual void SetA(const int& a){ cout原创 2015-07-28 11:39:15 · 19525 阅读 · 0 评论 -
C语言字符串和数字转换函数大全
atof(将字符串转换成浮点型数)atoi(将字符串转换成整型数)atol(将字符串转换成长整数数)strtod(将字符串转换成浮点数)strtol(将字符串转换成长整型数)strtoul(将字符串转换成无符号长整型数)toascii(将整型数转换成合法的ASCII 码字符) toupper(将小写字母转换成大写字母)tolower(将大写字母转换成小写字母)1转载 2013-05-17 10:40:44 · 917 阅读 · 0 评论 -
原码反码补码
(1)原码表示方法原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:1表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。例如,X1=+1010110X2=-1001010其原码记作:[X1]原=[+1010110]原=01010110[X2]原=[-1001010]原=11001010原码表示数的范围与二进制位数有关。当用8位二进转载 2013-05-17 16:03:07 · 967 阅读 · 0 评论 -
boost::spirit验证字符串是否符合四则运算规则
rule factor, term, exp; factor = real_p | ('(' >> exp >> ')'); // real_p | !(ch_p('+')|ch_p('-')) >> ('(' >> exp >> ')') 注释部分是带正负号的规则 term = factor >> *(('*' >> factor) | ('/' >> factor));原创 2013-08-15 18:10:18 · 948 阅读 · 0 评论 -
c++导出类示例
头文件// 下列 ifdef 块是创建使从 DLL 导出更简单的// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 YF_RELY_EXPORTS// 符号编译的。在使用此 DLL 的// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将// YF_RELY_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的// 符号视为原创 2013-10-08 10:12:06 · 3423 阅读 · 0 评论 -
C++ 编译器的函数名修饰规则
1.__stdcall 以“?”标识函数名的开始,后跟函数名; 函数名后面以“@@YG”标识参数表的开始,后跟参数表; 参数表以代号表示: X--void , D--char, E--unsigned char, F--short, H--int, I--unsigned int, J--long, K--unsigned long, M--float, N--double, _N--bo转载 2013-10-08 13:18:29 · 1077 阅读 · 0 评论