- 博客(116)
- 资源 (57)
- 收藏
- 关注
转载 “undefined reference to“ 问题汇总及解决方法
编写测试代码如下:// test.h#endif// test.c{}// main.c{}先将test.c编译成库文件。将main.c编译成可执行文件。链接出错了,原因很简单,test()这个函数的声明和定义不一致导致,将两者更改成一样即可通过编译。
2022-10-11 21:08:39
35979
原创 源码部署pxc集群
想了想还是研究一下怎么源码安装pxc吧,毕竟很多组件都是源码安装的。环境:yum install -y boost-devel libodb-boost-devel check-devel openssl-devel libaio-devel 安装scons需要2.7+ 的Pythonwget https://nchc.dl.sourceforge.net/project/scons/scons/3.0.1/scons-3.0.1.tar.gztar xf scons-3.0.
2021-06-01 23:03:18
570
原创 Centos7.5下源码编译安装gcc-8.2.0
Centos7.5yum安装的默认gcc版本为4.8.5,如果需要使用gcc的最新特性,则需要源码安装gcc最新版。编译过程中解决不少报错,最终有了本文的实测成功记录。yum 安装依赖包yum install -y epel-releaseyum install -y gcc gcc-c++ gcc-gnat libgcc libgcc.i686 glibc-devel bison flex texinfo build-essential12下载最新的gcc源码包cd /usr/local.
2021-06-01 23:01:50
587
1
原创 将一个数组分割为多个连续的子数组
例子: 比如,数组中的数据为:[1,2,3,5,6,8,9,10,12,13,14] 可将数组分割为:[1,2,3]、[5、6]、[8,9,10]、[12,13,14] 四个数组vector<vector<U32>> findconsecutivesubarrays(vector<U32> vec){ vector<vector<U32>> antarrays; int nlen = vec.si...
2021-05-17 09:37:00
2112
原创 二叉树中第二小的节点(C语言)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int Traver(int value, struct TreeNode* root) { if (root == NULL) { return -1; .
2021-04-07 13:32:03
148
原创 两个N进制100位字符串相减的问题
#include "stdafx.h"#include <iostream>#include <string.h>using namespace std;char* systemValueStr = "0123456789abcdefghigklmnopkrstuvwxyz";int main(){ while (1) { int n; char strbuf1[128] = {}; char str...
2021-02-07 11:31:05
1005
原创 C++——通过域名获取ip
#include <iostream>#include <winsock2.h>#include <ws2tcpip.h>using namespace std;#pragma comment(lib, "Ws2_32.lib")int main(){ WORD wVersionRequested = 0; WSADATA wsaData = {}; int err = 0; wVersionRequested = ..
2020-07-15 10:51:26
672
转载 文件下载支持http和https
//下载文件BOOL CUpdateDlg::HttpDownLoad(const CString &strURL, const CString &saveName){BOOL bRet = FALSE;DWORD dwServerType = 0;CString strServer, strObj;INTERNET_PORT nPort = 0;if (!AfxParseURL(strURL, dwServerType, strServer, strObj, ...
2020-05-21 14:27:49
1135
原创 c++获得大文件的CRC32值
使用方法:先调用init_crc32_tab生成查询表,再调用calc_img_crc获得文件的CRC值。#define Poly 0xEDB88320L//CRC32标准static unsigned int crc_tab32[256];//CRC查询表//生成CRC查询表void init_crc32_tab( void ) { int i, j; unsig...
2020-03-03 11:28:50
2373
转载 Windbg新手入坑指南
前言这篇文章是我学习windbg的一个笔记和总结,通过和OD的功能来对比学习windbg的一些理论和命令,达到能调试一个exe或者sys文件的目的。大神请飘过~熟悉理论 提高调试效率在开始调试之前,了解以下理论知识可以帮助你大大提高调试效率定制自己的Windbg界面windbg默认打开就只有一个Command窗口,但是这样调试效率很低,所以可以先设置好自己的用户界面,下面是我的...
2019-09-19 17:51:21
778
1
原创 根据CrtDump来定位内存泄漏问题
#define _CRTDBG_MAP_ALLOC#include <Windows.h>#include <crtdbg.h>#include <time.h>#include <tchar.h>inline void EnableMemLeakCheck(){ _CrtSetDbgFlag(_CrtSetDbgFlag(_CRT...
2019-06-06 15:05:32
475
原创 模拟的暴力破解rar纯数字密码的小程序
#include <stdio.h>#include <stdlib.h>#include <windows.h>bool ExecDosCmd(char* strcmd){ SECURITY_ATTRIBUTES sa; HANDLE hRead = NULL, hWrite = NULL; sa.nLength = s...
2019-06-05 16:38:01
2029
1
原创 得到磁盘映射驱动器
#include <stdio.h>#include <stdlib.h>#include <tchar.h>#include <windows.h>// #include <shellapi.h>// #include <winnetwk.h>#pragma comment(lib, "mpr.lib")#...
2019-06-03 14:08:03
257
原创 win下c++编译和测试openssl
openssl的编译win下openssl 编译x86环境,请输入perl Configure VC-WIN32 no-asm --prefix="D:\workspace\openssl-1.1.1b\x86"如果是x64环境 , 请输入perl Configure VC-WIN64A no-asm --prefix="D:\workspace\openssl-1.1.1b\x64...
2019-05-14 18:23:21
780
原创 mfc动态实现弹出式二级菜单
#define ID_TEST1 1000001#define ID_TEST2 1000002#define ID_TEST3 1000003#define ID_TEST4 1000004void CTestMenuDlg::OnRButtonUp(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 ...
2019-04-03 13:45:44
1873
转载 WinDbg -- 调试关键区(CriticalSection)死锁
一. 演示示例 这里一个有关键区锁死问题的程序,运行之后依次点击“CS锁死”按钮、右上角退出按钮,程序就会卡死。(图1) 对于眼下的这个问题,界面完全失去响应,这说明负责消息处理的UI线程阻塞了。对于几乎所有的windows GUI程序,编号为0的初始线程就是UI线程,windows发现该界面一段时间没有消息响应之后就会在标题后面加上“(未响应)”。 ...
2018-10-16 17:48:27
775
原创 c++时间函数性能对比
uint64_t getCurrentTime1(){ struct timeb rawtime; ftime(&rawtime); return rawtime.time * 1000 + rawtime.millitm;}uint64_t getCurrentTime2(){ return GetTickCount64();}uint64...
2018-10-15 17:39:07
1471
转载 抢救丢失的博文
0x1. 写在前面今天下午sae突然跪了。屌丝买不起VPS T_T~~博客没有设置自动保存。结果等sae恢复的时候,返回已经没用了。想到以前看到过用windbg来找回丢失的博文,今天也刚好来小试牛刀一把。前提是浏览器尚未关闭。0x2. 亲自动手启动windbg,选择File-->Attach to a Process,这里我用的chrome,可以看到chrome有很多进程,随便...
2018-09-13 10:38:13
201
转载 学会使用windbg定位程序bug
0x1工作环境系统:win7 32bit sp1Windbg: 6.12.0002.633 x86测试程序:通过com接口获得系统计划任务0x2被调试程序说明被调试程序是一个通过com接口获取windows的计划任务列表的程序。崩溃时的提示信息 0x3启动winDbg开始调试个人喜欢使用bat脚本文件来打开windbg调试程序。我的脚本文件内容如下start """C:\Program File...
2018-09-13 10:26:31
1144
转载 八大排序算法的Python实现
1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元
2017-06-16 15:37:54
312
转载 面试中的排序算法总结
查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排序可能会
2017-06-16 15:36:12
303
转载 最全面的常用正则表达式大全
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$
2017-06-16 15:34:52
409
转载 懒癌者的福音:给你最全的C、C++算法集合!
一、 数论算法1.求两数的最大公约数function gcd(a,b:integer):integer;begin if b=0 then gcd:=aelse gcd:=gcd (b,a mod b);end ; 2.求两数的最小公倍数function lcm(a,b:integer):integer;beginif a<b then swap(a,b);lcm:=
2017-06-16 15:32:53
704
转载 如何在GDB中关联源代码
原文:How to point GDB to your sources 翻译:雁惊寒如果你手头上有一个你自己或者别人开发的程序,但它有一些bug。或者你只是想知道这个程序是如何工作的。怎么办呢?你需要一个调试工具。现在很少有人会直接对着汇编指令进行调试,通常情况下,大家都希望能对照着源代码进行调试。但是,你调试使用的主机,一般来说并不是构建程序的那台,因此你会看到如下这个令
2017-05-08 13:05:05
11008
原创 linux 网络命名空间 Network namespaces
Linux命名空间是一个相对较新的内核功能,对于实现容器至关重要。 命名空间将全局系统资源包装到一个抽象中,该抽象只会与命名空间中的进程绑定,从而提供资源隔离。 在本文中,我将讨论网络命名空间并展示一个实际的例子。 命名空间和cgroups是软件集装箱化(Docker)的大部分新趋势的主要内核技术之一。 简单来说,cgroups是一种计量和限制机制,它们控制您可以使用多少系统资源(C
2017-04-19 16:20:01
14551
转载 位运算符及其应用
一、C语言的六种位运算符:& 按位与| 按位或^ 按位异或~ 取反左移>> 右移 1. 按位与运算按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下: 0000
2017-01-05 10:19:59
428
转载 char,short ,int ,long,long long,unsigned long long数据范围
速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65535 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlo
2016-12-30 12:45:13
388
转载 将进程的输出重定向至文件中
CString cmdLine = _T("ping.exe 192.168.3.49"); SECURITY_ATTRIBUTES sa={sizeof ( sa ),NULL,TRUE}; SECURITY_ATTRIBUTES *psa=NULL; DWORD dwShareMode=FILE_SHARE_READ|FILE_SHARE_WRITE;
2016-09-13 10:38:57
1996
原创 Ubuntu 建立Samba服务器
一. samba的安装: sudo apt-get install samba sudo apt-get install smbfs 二. 创建共享目录: mkdir /home/zhangli/share sudo chmod 777 /home/zhangli/share/ 三. 创建Samba配置文件: 1. 保存现有的配置文
2016-07-13 10:27:31
433
原创 使应用程序只能运行一次,第二次运行显示上次程序
// 此程序只能运行一次,用互斥量来判断程序是否已运行HANDLE m_hMutex=CreateMutex(NULL,TRUE, m_pszAppName); if(GetLastError() == ERROR_ALREADY_EXISTS){ ReleaseMutex(m_hMutex); HWND hHWND = ::FindWindow(NULL, m_pszAppName)
2016-01-28 14:46:12
2775
转载 利用C++11实现一个自动注册的工厂
工厂方法是最简单地创建派生类对象的方法,也是很常用的,工厂方法内部使用switch-case根据不同的key去创建不同的派生类对象,下面是一个伪代码。Message* create(int type){ switch (type) { case MSG_PGSTATS: m = new MPGStats; break; cas
2016-01-01 22:44:15
556
转载 五大常用算法之五:分支限界法
分支限界法一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分
2015-12-29 10:25:36
499
转载 五大常用算法之四:回溯法
1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 许多复杂的
2015-12-29 10:23:32
426
转载 五大常用算法之三:贪心算法
贪心算法一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前
2015-12-29 10:22:28
415
转载 五大常用算法之二:动态规划算法
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能
2015-12-29 10:21:36
371
转载 五大常用算法之一:分治算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的
2015-12-29 10:20:22
418
转载 GetModuleHandle,AfxGetInstanceHandle使用区别
当一个文件被映射到调用进程的地址空间时,GetModuleHandle函数得到其中某一模块的句柄。 使用GetModuleHandle函数格式:HMODULE GetModuleHandle( LPCTSTR lpModuleName); 参数 lpModuleName: [in]用指针指向一个包含模块名以NULL字符结尾的串,模块是.dll或.exe文件。
2015-11-19 17:03:30
700
转载 【MSP430 编译器使用经验】+ IAR 环境下的函数定位加载(分散加载)方法
以MSP430AFE253为例分享IAR(5.5)环境下的函数定位方法1、修改XCL配置文件在IAR的安装目录 Tools\430\config下找到lnk430afe253.xcl文件,将其拷贝到当前工程目录下;设置项目中链接文件的位置(将默认位置改为修改后lnk430afe253.xcl文件的存放位置),如下图所示:打开 lnk430afe253.xcl
2015-10-26 12:09:33
4045
转载 MFC/ODBC 记录集只读的问题
今天用vs2005 MFC/ODBC,对数据库中的一个表进行添加、删除操作时出现了“记录集是只读”的问题,导致无法对数据库进行修改。 现在找到问题的根源: 1.最好用CRecordset::OpenEx()函数打开数据源.2.首先要指定为dynaset,rs.Open(CRecordset::dynaset,...);其次要保证你要插入数据的那个表中
2015-09-09 15:54:55
1701
转载 CString 成员函数用法大全
CString的构造函数CString( );例:CString csStr;CString( const CString& stringSrc );例:CString csStr("ABCDEF中文123456"); CString csStr2(csStr);CString( TCHAR ch, int nRepeat = 1 );例:CString
2015-08-07 17:49:57
390
Visual_Assist_X_10.6.1859和Visual+Assist+X+10.7.1936
2013-06-05
Visual C++2010开发权威指南(共三部分).part1.rar
2011-11-12
Visual_C++__MFC入门教程
2011-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人