- 博客(54)
- 资源 (1)
- 收藏
- 关注
原创 c# delegate
using System;using System.Collections.Generic;using System.Linq;using System.Runtime.InteropServices;using System.Text;using System.Threading.Tasks;namespace @delegate{ class Program { //1,依次调用 //public delegate int Call(in.
2021-01-28 14:08:09
184
原创 c++线程同步的几种方式
主要有以下几种:(1)事件(Event);(2)信号量(semaphore);(3)互斥量(mutex),也叫锁;(4)临界区(Critical section)。
2021-01-26 14:00:10
525
原创 c++读取csv
#include <iostream>#include <windows.h> #include <fstream>#include <sstream>#include <vector>using namespace std;wstring getAppPath(){ wchar_t buffer[MAX_PATH]; GetModuleFileNameW(NULL, buffer, MAX_PATH); .
2021-01-26 10:01:19
302
原创 c++中类静态map初始化
test.hstatic map<int,int> m_smap;test.cppmap<int, int> test::m_smap;
2021-01-26 09:48:07
2145
转载 InitializeCriticalSectionAndSpinCount()
InitializeCriticalSectionAndSpinCount和InitializeCriticalSection 都是临界区的一种初始化,可是前者多了dwSpinCount参数,这个参数的作用是在进入临界区的时候CPU自选计数为什么要引用这个参数呢?在EnterCriticalSection调用这个参数,如果线程无法获取临界区则会进行睡眠,则CPU则进行线程环境上下切换,这个切换大概需要几千个CPU周期,并且争夺的线程都会调用开销昂贵的WaitForsingleObject,而
2021-01-22 15:17:14
841
原创 L,_T笔记(编码格式)
L,将ANSI字符转换成UNICODE字符串,就是每个字符占用两个字节,这将告诉编译器该字串按宽字符保存_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变...
2021-01-22 13:39:45
129
原创 c++11之std::function与bind用法
转自https://www.cnblogs.com/heartchord/p/5017071.htmlhttps://www.cnblogs.com/yinwei-space/p/12708871.html类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。std::function对象是对C++中现有的可调用实体的一种类型安全的
2021-01-18 14:21:47
474
原创 C#读取保存csv文件
帮写了个小程序,有些小细节1.读取(弹出对话框供选择文件)private void button1_Click(object sender, EventArgs e) { try { OpenFileDialog file = new OpenFileDialog(); file.ShowDialog(); FileStream fs =
2020-11-20 17:55:54
1006
原创 关于静态类和静态函数的一些用法
一、静态类静态类与非静态类的重要区别在于静态类不能实例化。它仅包含静态成员,不能使用new关键字创建静态类的实例。主要特性:1,仅包含静态成员。2,无法实例化。3,是密封的。4,不能包含实例构造函数。public static class FB{ public static void aaa { return; } public static ...
2020-02-18 14:09:51
1244
原创 c# lambda表达式应用
Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数,但是比匿名函数更简洁。代替编写foreach循环等遍历。表达方式:=>,读作goes to普通用法:if(NodeList.Exists(c => c == node.nodeId)) //查询是否存在if(agcList.FirstOrDefault(c => c.CurNodeI...
2020-01-08 14:02:34
335
原创 vs生成项目时,默认将资源文件复制到输出目录
一、如果要将整个文件目录全部复制过去,对于c#来说,打开项目属性--生成事件,用命令行复制过去:bat命令/Y /I /E等含义具体可以在运行里输入cmd /k xcopy/?查看。二、复制文件夹里部分文件(如dll)1.打开.csproj项目工程文件,修改CopyToOutputDirectory属性 <Content Include="dll\AJMsgEn...
2019-11-08 09:49:52
7269
原创 Linux 虚拟机扩容与挂载
VMware虚拟机(linux)磁盘不够用了...1、虚拟机设置虚拟机关闭前提下,设置硬盘--右下角扩展,输入要扩充到的容量。2、进入linux,终端输入df -h 查看磁盘空间利用情况3、sudo fdisk -l 查看设备信息,虽然容量增加了,但是文件系统并没有加载进来4、添加磁盘分区sudo fdisk /dev/sda提示下输入【m】输...
2019-08-30 16:02:53
620
1
原创 vscode + CMake调试c++程序
前文介绍了vscode配置launch.json及tasks.json启动调试的一般方法,现在尝试配合CMake调试。1、vscode安装CMake和CMake Tools插件2、打开project项目文件夹,右下角默认配置,选择gcc编译3、完成后会自动生成一个c_cpp_properties.json,编译命令写在compileCommands.json。目录层级如下:...
2019-08-29 16:21:17
1616
原创 CMake基本语法
打算把项目用cmake重新做一遍,笔记待补充cmake_minimum_required(VERSION 2.8.9)project (hello)#输出工程的根目录message(${PROJECT_SOURCE_DIR})set(LIB_SRC hello.cpp)set(APP_SRC test.cpp)#生成库文件add_library(hello_static ST...
2019-08-29 14:14:44
150
原创 vscode配置调试c++程序(环境Ubuntu 18.04.1 LTS)
一、安装vscode1、相关扩展插件:2、默认编译环境(gcc,g++已装好),Ubuntu下可直接安装build-essential二、准备好文件夹和程序三、配置debug环境1、配置launch.json文件依次点击侧边栏调试图标,添加配置,选择【C++(GDB/LLDB)】,【g++ build and debug active file】vsco...
2019-08-28 14:10:05
1027
原创 linux笔记
这里记录一下linux常用命令吧1、dpkg -L code <以vscode为例>用sudo apt-get install xx或双击.deb文件install安装的软件路径(一般安装在usr/share)2、tree 以树状图列出目录的内容3、touch 1.txt 创建文件4、ps –ef|grep tomcat 查看所有有关t...
2019-08-28 11:09:36
119
原创 c++智能指针复习笔记
/*******shared_ptr:变量出了作用域之后智能指针会析构,引用计数-1,直到为0时销毁对象,调用对象的析构函数,哪怕是出现了异常。*****/ /*******weak_ptr解决循环引用问题*******/ /*******unique_ptr它不允许其他的智能指针共享其内部的指针,不允许通过赋值将一个unique_ptr赋值给另一个unique_ptr*/...
2019-08-22 18:45:21
129
原创 UTM(xy坐标)转WGS经纬度坐标方法
python方法UTM转经纬度坐标:例:上海带号51度带,北半球(326474.4650588095,3392563.1296714176) ===> (30.6531625008, 121.1890005577)import mathfrom pyproj import Projdef transform_utm_into_lat_lon(x, y, zo...
2019-07-15 17:33:41
11203
7
原创 IDEA中file size exceeds configured limit//pycharm,打开打印显示不全问题
一、用IDEA打开文件后,显示file size exceeds configured limit错误。解决办法:打开IDEA安装目录下的bin/idea.properties, 将其中默认的idea.max.intellisense.filesize=2500改大一点,例如:idea.max.intellisense.filesize=50000二、同理,pycharm的输出...
2019-07-10 14:19:47
779
原创 Cstring,string互转(笔记)
string a;a.c_str(); // string -> Cstring (const char *)Cstring b;string B = CT2A(b); // Cstring -> stringint c = 1;string C = to_string(c); // i...
2019-07-09 10:43:51
263
原创 linux下Program received signal SIGSEGV, Segmentation fault
1、将Windows下C++项目移到Linux时,编译ok,运行时报Segmentation fault:仔细查找问题原因,依然是空指针、野指针的读写操作不当造成,可以往初始化方向查找问题。2、例子.h文件list<string> *p_str;.cpp如果没有初始化,在析构时调用if (p_str){ delete p_str; ...
2019-07-04 18:58:44
1313
原创 c++ DLL导出类和导出函数
一、导出函数背景:导出函数: 在DLL中有一张导出表,其中有一系列函数,这些函数叫做导出函数。这些函数可供外部程序调用,即这些函数都是该DLL的入口点(类似main函数)。不在导出表中的函数,为该DLL私有的函数,外部程序不能调用它们。1、没有__declspec(dllexport),将生成的测试lib库添加到项目中,直接调用,会报错:LNK2019 无法解析的外部符号 "vo...
2019-07-03 15:10:27
16509
2
原创 C1010 在查找预编译头时遇到意外的文件结尾
错误:C1010 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "pch.h"”解决办法:项目属性 -> C/C++ -> 预编译头 ,改为不使用预编译头。...
2019-07-03 14:25:50
1053
原创 warning C4273: dll 链接不一致
在编译Dll文件的时候遇到dll 链接不一致的问题,头文件如下:#ifdef TESTDLLEXPORT#define DLLEXPORT __declspec(dllexport)#else#define DLLEXPORT __declspec(dllimport)#endif#ifdef __cplusplusextern "C" {#endifDLLEXPORT...
2019-07-03 14:22:27
18657
6
原创 excel简单操作快捷键
为了快速从excel导入mysql数据,复习一下excel操作快捷键1、快速到有数据的最后一行: 选中这一列,Ctrl +↓2、填充为同一个数据:(先跳到最后一行),选中要填充的列,Ctrl + D3、递增填充:输入初始值,选测【填充】—>【序列】,选测列/等差/步长/终止值 即可。4、一列数据都*10:输入= A1*10 ,下拉填充。...
2019-07-02 10:04:12
172
转载 File was loaded int the worng encoding:"UTF-8"
pycharm导入python文件时出现编码格式错误问题参考:https://blog.csdn.net/qq_35136982/article/details/80780856
2019-06-27 18:10:09
202
原创 libQt5OpenGL.so.5找不到问题解决
问题描述:linux运行程序时发生error while loading shared libraries: libQt5OpenGL.so.5: cannot open shared object file: No such file or directoryldd 查找依赖时not found,发现在/usr/lib/x86_64-linux-gnu里缺失libQt5O...
2019-06-17 15:54:10
5472
1
原创 解决cannot open shared object file: No such file or directory
一、linux下调用动态库.so文件时提示:cannot open shared object file: No such file or directory解决办法:1、此时ldd xxx查看依赖缺少哪些库 libmysqlcppconn.so.7 => not found libboost_system.so.1.64.0 => not found2、...
2019-06-12 11:24:19
155633
22
原创 c++ map的insert插入重复key问题
map的insert方法会忽略重复key,而不是替换int cnt = 0;map<string,int> m_str2id;for(int i=0; i<5; i++) { m_str2id.insert(pair<string,int>("a",cnt)); cnt++;}for(auto it = m_str2id.begin()...
2019-06-10 13:33:02
22579
原创 JNI——C/C++传递list到java
需求:C/C++传递list<Path> 到JAVA一、java创建Path类package com.anji.vms.routing;public class Path { public String Id; //节点编号 double posX; //节点gpsX坐标 double posY; //节点gpsY坐标 int i_pat...
2019-05-07 17:11:56
3245
原创 git仓库服务器名称变更Could not read from remote repository
一、提交更改时:git pushGitLab: Project 'vms/core' was moved to 'fms/core'.Please update your Git remote and try again: git remote set-url origin ssh://git@xxxx/fms/core.gitfatal: Could not read ...
2019-05-06 14:09:54
1306
转载 C++多态的实现及原理复习
C++的多态性概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数 1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类...
2019-04-26 18:32:22
114
原创 google开源框架gRPC学习笔记(三)生成helloworld程序
一、定义proto见:grpc\examples\protos\helloworld.protosyntax = "proto3";option java_multiple_files = true;option java_package = "io.grpc.examples.helloworld";option java_outer_classname = "HelloWor...
2019-04-19 17:36:51
1368
原创 CMake: error in configuration process, project files may be invalid
在用cmake_gui编译grpc时多次遇到“error in configuration process, project files may be invalid”解决办法:查看log中具体的错误一、log显示:The system is: Windows - 10.0.14393 - AMD64一般是由于编译器配置错误,仔细查找自己的环境二、缺少第三方库也会导致报错(对于...
2019-04-19 14:53:47
4509
原创 google开源框架gRPC学习笔记(二)编译gRPC
上一节准备环境搭好,这一节开始正式编译grpc源码一、打开cmake_gui,source code输入grpc根目录,第二行输入一个新的bin文件(建build提示无法重命名XXX),隐掉目录防止混淆。二、Configure,确定新建目录,选择VS2017(我的版本)+ x64直到log显示done 期间如果遇到“errorinconfigurationp...
2019-04-19 14:36:06
399
原创 google开源框架gRPC学习笔记(一)概述
官方文档http://doc.oschina.net/grpc?t=56831gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统,在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调...
2019-04-19 10:37:36
1368
原创 git使用.gitignore注意事项
一、.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:git rm -r --cached .git add .git commit -m ‘update .gitignore’git push origin master二、忽略...
2019-04-16 13:53:41
153
原创 git服务器url改变发生Host key verification failed.
一、查看修改远程关联:$ git remote -vorigin ssh://git@xxxx/core.git (fetch)origin ssh://git@xxxx/core.git (push)二、直接push到新的url会发现Host key verification failed. 要先:git remote remove origin...
2019-04-16 10:50:47
515
转载 [c++]socket编程实例
对于TCP连接:1.服务器端1)创建套接字create;2)绑定端口号bind;3)监听连接listen;4)接受连接请求accept,并返回新的套接字;5)用新返回的套接字recv/send;6)关闭套接字。2.客户端1)创建套接字create; 2)发起建立连接请求connect; 3)发送/接收数据send/recv;4)关闭套接字。TCP总结:Server端:create ...
2019-04-12 14:12:18
398
转载 OSI七层协议
通俗易懂https://blog.csdn.net/taotongning/article/details/81352985模型参考图:OSI参考模型中每个分层的作用:参考https://www.cnblogs.com/mike-mei/p/8548238.html...
2019-04-11 10:55:17
147
libQt5OpenGL.so.zip
2019-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人