- 博客(46)
- 收藏
- 关注
原创 CMake中,指定源文件不使用预编译头文件,MSVC编译器
将这个属性设置为 `ON` 可以确保 `specific_file.cpp` 在编译时不会使用预编译头文件。确保你的CMake版本至少是3.16,因为在更早的版本中不支持 `SKIP_PRECOMPILE_HEADERS` 属性。在这个示例中,`your_target` 是你的CMake目标,可能是一个库或者是一个可执行文件。`pch.h` 是你的预编译头文件。在CMake中,如果你想要指定某个特定的`.cpp`文件不使用预编译头文件(PCH),你可以通过设置该文件的编译属性来实现。
2024-05-13 17:08:42 203
原创 error C2001: 常量中有换行符
公司要求提交到git服务器上的代码文件必须都是UTF-8编码,但Visual Studio默认新添加文件是"简体中文(GB2312) - 代码页 936",如果文件中没有中文符号和文件,那没有问题,如果存在中文字符,可能导致编译报错。以上是我遇到的问题,及解决方案。备注一下,以免忘记。
2024-01-31 11:07:40 301
转载 Windows进程间通信方式
匿名管道(Anonymous Pipe)是 在父进程和子进程之间,或同一父进程的两个子进程之间传输数据的无名字的单向管道。邮件槽与命名管道相似,不过它传输数据是通过不可靠的数据报(如TCP/IP协议中的UDP包)完成的,一旦网络发生错误则无法保证消息正确地接收,而命名管道传输数据则是建立在可靠连接基础上的。不同于匿名管道的是命名管道可以在不相关的进程之间和不同计算机之间使用,服务器建立命名管道时给它指定一个名字,任何进程都可以通过该名字打开管道的另一端,根据给定的权限和服务器进程通信。
2023-07-15 10:03:15 359
原创 Unable to negotiate with x.x.x.x port 22: no matching key exchange method found. Their offer: diffie
Unable to negotiate with x.x.x.x port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
2022-11-02 18:46:46 1996
转载 git commit之后,想撤销commit
写完代码后,我们一般这样git add . //添加所有文件git commit -m "本功能全部完成"执行完commit后,想撤回commit,怎么办?这样凉拌:git reset --soft HEAD^这样就成功的撤销了你的commit注意,仅仅是撤回commit操作,您写的代码仍然保留。说一下个人理解:HEAD^的意思是上一个版本,也可以写成HEAD~1如果你进行了2次commit,想都撤回,可以使用HEAD~2至于这几个...
2022-03-12 14:52:17 212
原创 github 大文件管理
执行 git lfs install 开启lfs功能 使用 git lfs track 命令进行大文件追踪 例如git lfs track "*.png" 追踪所有后缀为png的文件 使用 git lfs track 查看现有的文件追踪模式 提交代码需要将gitattributes文件提交至仓库. 它保存了文件的追踪记录 提交后运行git lfs ls-files 可以显示当前跟踪的文件列表 将代码 push 到远程仓库后,LFS 跟踪的文件会以『Git LFS』的形式显示: clone 时 使
2022-03-12 14:14:15 371
原创 VS 代码折叠和展开快捷方式
Ctrl + M + O: 折叠所有方法Ctrl + M + M: 折叠或者展开当前方法Ctrl + M + L: 展开所有方法
2021-08-09 15:01:37 891
原创 c++ 格式化中文字符串
项目中用log4z 输出日志,相比glog而言,log4z 可以格式化ANSI和unicode ,因为log4z 最终还是调用 _snprintf_s:#define LOG_FORMAT(id, level, file, line, logformat, ...) \do{ \ if (zsummer::log4z::ILog4zManager::getPtr()->prePushLog(id,level)) \ {\ zsummer::log4z::LogD
2021-02-03 15:21:00 554
原创 XP下 本地静态对象未初始化问题解决方案
类的成员函数中,构造静态对象,XP下不会初始化 TLS,在编译选项中加上:/Zc:threadSafeInit- (取消线程安全)即可。详情:https://docs.microsoft.com/zh-cn/cpp/build/reference/zc-threadsafeinit-thread-safe-local-static-initialization?viewFallbackFrom=vs-2019&view=msvc-160...
2020-12-08 16:24:17 458
原创 能ping通,但打不开网页解决方案
1、打开cmd窗口,netsh winsock reset。重启电脑即可(我是这种方法解决的)。2、刷新DNS: ipconfig /flushdns,ipconfig /displaydns,ipconfig /renew重请从DHCP服务器获得IP
2020-07-23 14:14:54 30449
原创 文件路径操作
文件路径解析相关的几个API: 1、解析文件路径中各个部分名称: _splitpath_s: #include <stdlib.h> or <wchar.h>errno_t _splitpath_s( const char * path, char * drive, size_t driveNumberOfElements, char * dir, size_t dirNumberOfElements,...
2020-07-14 15:04:04 319
原创 获取cmd输出结果
执行cmd命令,获取输出结果。方式一:void GetConsoleResult(){ FILE* pPipe = _popen("cmd /c tasklist |findstr /i \"KvService.exe\"", "r"); std::string strOut; if (pPipe) { /* Read pipe until end of file, or an error occurs. */ char psB
2020-06-10 15:30:57 3097
原创 windows 应用层编程基础试题
以下两种获取字符串方式,正不正确?//返回char*指针没有问题char *GetString(){ char *p = new char[1024]; ... return p;}//返回局部变量地址,出现意外错误char *GetString(){ char szBuff[] = "hello world"; char *p = ...
2020-04-20 15:26:16 254 1
原创 Lua5.3.5源码编译
首先从lua官网下载源码http://www.lua.org/download.html并解压:VS2017 新建项目->控制台应用将解压出来的src文件夹,拷贝到解决方案目录下建好项目,添加lua源码:Ctrl+A 选择src目录下所有文件,并添加至项目至此准备工作完成,接下来分别编译Lua解释器Lua.exe,Lua编译器Luac.exe,...
2020-03-31 17:38:50 1818
转载 git 提交多个远程仓库
有时候一个项目,希望既提交到oschina又提交到公司内网的gitlab,或者是github什么的。使用git remote -v 查看当前git的远程仓库。添加一个远程仓库git remote add <name> <url-of-remote> ###<name>自己起个名字,默认是oringn,那么添加的第二个我们可以叫oschi...
2019-12-27 17:26:15 227
原创 git 常用命令
查看本地仓库文件,并输出到本地日志文件:git ls-files > 1.txt查看没有添加的文件:git status重写历史git commit --amend#改变最近一次提交git rebase -i HEAD~3#修改最近三次的提交说明,或者其中任意一次git commit --amend#保存好了,这些指示很明确地告诉了你该干什么git rebas...
2019-12-27 17:25:26 89
原创 本地git安装完成之后,从远程git服务器上面下载代码。报错SSL certificate problem:self signed certificate in certificate chain.
解决方案:打开git的控制端黑窗口,输入:git config --global http.sslVerify false点击Entry之后,就会去掉git的ssl验证。然后就可以正常的下载代码。
2019-11-28 13:49:28 278
原创 MFC CFileDialog 文件过滤条件
今天写一个选择文件的对话框,使用CFileDialog: TCHAR *lpFilter = _T("Img Files(*.img) | *.img |All Files(*.*) | *.* ||"); CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, lpFilter, th...
2019-10-24 16:29:33 1196
原创 printf 、cout 输出至控制台阻塞
printf以及cout输出到控制台时,有几率会阻塞进程。切换到控制台敲回车或者 按任意键后信息才会输出到屏幕,代码继续往下执行。有时即使调用了fflush(stdout),也依然会出现阻塞的情况。在程序一开始调用 setvbuf(stdout, NULL, _IONBF, 0);【之前用setbuf(stdout, NULL)】即不设置输出缓冲区,输出信息不存放在缓冲区中,...
2019-08-17 11:46:45 2068 2
原创 MFC 单文档 带参数调试
项目用MFC 单文档开发。今天准备带参数调试,发现在 “命令参数”栏 填1时,程序运行会报错,提示"没有找到E:\xxx\1".原来把参数数据当成了执行模块。这个MessageBox并不是我代码弹出,所以不好判断在哪里报错。这里就想到VS环境中,下API断点。网上查了一下资料,Ctrl+B手动添加断点:{,,USER32.DLL}_MessageBoxW@16分二步,加载符号和...
2018-07-18 17:18:46 494
原创 windows 时间戳
time_t 表示时间戳。timt_t * mktime(tm *p) 将tm类型转换为 时间戳。 tm * gmtime(time_t *p); 将time_t(时间戳)转换为tm类型
2018-05-09 15:14:55 5393
转载 GetWindowRect与GetClientRect 的区别
GetWindowRect 函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。 函数原型:BOOL GetWindowRect(HWND hWnd,LPRECTlpRect); 在Visual Studio 2005中,函数原型为void GetWindowRect(LPRECT lpRect) const; 是属于CWnd类的函数.
2017-09-20 17:05:55 177
原创 Windows创建指定大小
用文件映射可以瞬间创建一个空的大文件。VOID CreateSpecifiedSizeFile(DWORD dwSizeHigh, DWORD dwSizeLow){ HANDLE hFile = CreateFile(_T("1.txt"), GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRI...
2017-09-08 16:03:49 313
转载 如何转义CSV文件中的逗号
CSV全称是:Comma Separated Values 或者 Character Separated Values。尽管第一种说法更常见,但我觉得还是第二种说法更确切一些,因为你可以使用其它字符做分隔符。使用逗号做分隔符的CSV文件有一个好处:你可以直接用Excel打开。如果使用其它分隔符,比如“|”,你必须告诉Excel该文件使用“|”作分隔符,Excel才能把它导入进来。
2017-09-04 11:23:53 1724
原创 IOCP与SO_KEEPALIVE
项目使用IOCP完成端口,要对连入的客户端进行 死连接检测。由于是TCP协议,便想到用SO_KEEPALIVE及SIO_KEEPALIVE_VALS进行检测。简洁方便,把任务交给系统来做更有保障些。于是便写下了如下代码://Set Keeplive 开启保活机制if (SOCKET_ERROR == setsockopt(pClientContext->m_sockClient, SOL_S
2017-08-29 16:53:08 728
转载 C++打开文件夹并选中指定文件
如何用程序打开一个文件,并选中这个文件夹中指定的文件呢?其实这个功能用得很多。1.方法一[cpp] view plain copyShellExecute( NULL, _T("open"), _T("Explorer.exe"), _T("/select, D:\\a.mp3"),
2017-08-24 10:56:31 4384
原创 VS2010 调试启动突然变慢解决办法
【问题】win7 x64,i5四核,8G内存,C盘还是SSD的。之前启动Visual Studio 2010,都是很快,比如1,2秒。突然,某天,启动Visual Studio 2010,极其的,非常非常的慢,要好几分钟。【解决过程】1.看到这人也遇到类似问题:Visual Studio 2010, 2012 Very slow and the solution其是说要...
2017-08-24 10:18:52 8603 1
原创 MFC 复制文件夹
VOID MyCopyDir(CString strSource, CString strTarget){ strTarget += _T("\\"); CreateDirectory(strTarget,NULL); //创建目标文件夹 CFileFind finder; CString strPath; strPath.For
2017-08-04 17:30:34 871
原创 windows 选择文件夹
如果只想让用户选择文件夹,而不是选择文件,则不能用CFileDialog,用CFolderPickerDialog来实现//选择解压后的文件路径 void CUpdataAppDlg::OnBnClickedExtractsettargetdir(){ try { CFolderPickerDialog FoldDlg;
2017-08-01 15:55:08 354
原创 ShowErrMsg
VOID ShowErrMsgW(){ LPVOID lpMsgBuf = NULL; FormatMessageW( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
2017-08-01 09:59:29 337
转载 Windows Error 0x00002620 - 0x00002B0F
This is the fourteenth and final node in the project to consolidate all of the Windows Error nodes. You will notice that this node seems to skip a few numbers from time to time. Those are the error
2017-07-28 08:50:21 1464
原创 关于CString
实在惭愧,用了这么久的CString,一直以为是跟着默认的项目字符集走,今天查资料突然发现,其实是有分开的CStringA和CStringW. 哈哈,以后用起来就方便很多了。点点滴滴的积累,虽然很基础,但也不容大意,还是记下来吧
2017-07-25 09:34:52 249
原创 状态栏重影问题
最近用单文档写一个项目,视图分割四部分。在其中一个ListView中添加了状态栏。当拖动滚动条的时候,状态栏会出现重影。解决办法:在响应滚动条消息 ON_WM_HSCROLL() 函数中加上m_StatusBar.Invalidate();
2017-07-11 15:26:44 593
原创 MFC 单文档视图分割
单文档视图分割时,分割的每个视图都要添加CreateView.在MainFrm.h中 定义CSplitterWnd m_splMainCols;重载OnCreateClient函数//准备创建视图分割BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){
2017-05-11 09:50:03 766
转载 Windows Styles
原贴地址:http://zhangshourui2004.blog.163.com/blog/static/86106520078914126397/[WTL] 窗体Style的含义比较有用的设置:(1)WS_POPUP:弹出式窗体,没有标题栏!WS_BORDER:细的黑边框WS_OVERLAPPED:一般的有标题栏的窗体,见多了。WS_CHILD:子窗体,一般用于
2017-05-03 13:28:51 273
原创 PE加载重定位
PE exe文件加载有时候会重定位,主要是因为 FILEHEADER中的一个字段 Characteristics 这个域描述pe文件的一些属性信息,比如是否可执行,是否是一个动态连接库等.具体定义如下:#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 // 重定位信息被移除,文件必须加载先前的基地址#defi
2017-04-07 10:19:27 924
原创 逆向面试题汇总
注入有哪几种方式? SetwindowsHook以调试方式打开进程,制造异常,在接管异常代理的代码里加入注入代码CreateRemoteThread 和 Loadlibrary 将要执行的代码写在Dll里CreateRemoteThread 和Writeprocessmemory 写汇编代码 修改PE文件导入表,添
2017-03-03 19:23:51 5620
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人