- 博客(62)
- 资源 (4)
- 收藏
- 关注
转载 给New出来的 char * 赋值操作的三种方法
之前在对new 出来的char * 指针进行操作的时候,发现在delete的时候总是会报错,后来上网查资料是说在赋值的时候,由于字符串是存放在字符串常量区的,当你用字符串对其进行赋值的时候,其指向的地址就已经发生了改变。
2024-01-09 14:43:10
1351
原创 C++11中std::async的使用详解
当启动策略采用std::launch::async时,即使从不访问其共享状态,返回的std::future也会链接到被创建线程的末尾。C++11中的std::async是个模板函数。1.无需显示指定启动策略,自动选择,因此启动策略是不确定的,可能是std::launch::async,也可能是std::launch::deferred,或者是两者的任意组合,取决于它们的系统和特定库实现。对Fn的调用将推迟到返回的std::future的共享状态被访问时(使用std::future的wait或get函数)。
2023-12-12 16:13:51
1589
转载 C++中的STL中map用法详解
下面说下,map在空间上的特性,否则,估计你用起来会有时候表现的比较郁闷,由于map的每个数据对应红黑树上的一个节点,这个节点在不保存你的 数据时,是占用16个字节的,一个父节点指针,左右孩子指针,还有一个枚举值(标示红黑的,相当于平衡二叉树中的平衡因子),我想大家应该知道,这些地方 很费内存了吧,不说了……1、用count函数来判定关键字是否出现,其缺点是无法定位数据出现位置,由于map的特性,一对一的映射关系,就决定了count函数的返回值只有两个,要么是0,要么是1,出现的情况,当然是返回1了。
2023-12-08 17:54:47
229
转载 C++Lambda表达式,超详细的讲解,保证一遍懂
https://blog.youkuaiyun.com/u014711890/article/details/123441799
2022-07-06 13:25:04
4594
1
原创 std::shared_ptr的使用
std::shared_ptr 是一种智能指针,它能够记录多少个 shared_ptr 共同指向一个对象,从而消除显示的调用 delete,当引用计数变为零的时候就会将对象自动删除。std::shared_ptr 可以通过 get() 方法来获取原始指针,通过 reset() 来减少一个引用计数, 并通过use_count()来查看一个对象的引用计数。例如:auto pointer = std::make_shared<int>(10);auto pointer2 = poi.
2022-04-26 15:42:18
13078
转载 TestDisk 之Qt creator + MinGW +Qt +gdb
现在采用安装组合为:Qt Creator(2.6.2) + MinGW(在线安装) + QT(4.8.6)先安装MinGW,再安装QT,后安装QT Creator;安装好后,构建是不能用的,还要设置哦!我的机子是win7i3 64位 安装的时候是按照32位来安装的。1. QT :: error: 无法打开文件“d:\Qt\2010.05\qt\lib\qtmaind.lib”我今天就遇到这个问题了。纠结半天,整了半天,终于解决!!!解决方法:工具-选项-构建和运行-构建套件...
2022-03-24 13:32:49
290
转载 Win7 Qt4.8.5+QtCreator2.8.0+mingw配置过程
1:安装包百度盘下载链接:Mingw:mingw.7z_免费高速下载|百度网盘-分享无限制Qt Creator 2.8.0:百度网盘-链接不存在Qt 4.8.5:百度网盘-链接不存在2:安装步骤1.首先安装qt creator,双击qt-creator-windows-opensource-2.8.0,注意安装目录不要有空格和特殊字符,默认安装在C:\Qt目录下。2.安装mingw。qt框..
2022-03-24 10:59:50
1449
转载 _splitpath, _wsplitpath 分割路径
以前分割路径的时候,总是自己写一些函数来分割,今天不小心看到这两个函数,所以赶紧记录下来:直接上code:[cpp] view plaincopyprint?#include #include using namespace std; int main() { char *path="
2013-08-05 13:58:37
3196
转载 C++随机数生成方法
一、C++中不能使用random()函数==================================================================================本文由青松原创并依GPL-V2及其后续版本发放,转载请注明出处且应包含本行声明。C++中常用rand()函数生成随机数,但严格意义上来讲生成的只是伪随机数(pseudo-r
2013-06-27 09:14:27
910
原创 gdi、gdi+计算输出文字的长度
gdi+StringFormat strFormat; GraphicsPath path; FontFamily fontfamily; font.GetFamily(&fontfamily); path.AddString(outText.c_str(),-1,&fontfamily,font.GetStyle(),font.GetSize(),Po
2013-06-18 09:52:31
2233
1
原创 MFC对话框border设置成none,点击任务栏不能最小化问题
在OnInitDialog方法中加入下面代码就可以了: LONG dwStyle = ::GetWindowLong(m_hWnd,GWL_STYLE); ::SetWindowLong(m_hWnd,GWL_STYLE,dwStyle | WS_MINIMIZEBOX);
2013-05-10 10:50:22
1212
转载 VC下显示位图的几种方法
VC下显示位图的几种方法总结一下关于位图的几种用法。说到这还是开头给大家介绍一下,有关位图的知识吧,以及对于我们比较有用的几个关于位图的结构体。一.位图结构如下: ---- 一、BMP文件结构 ---- 1. BMP文件组成 ---- BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 ---- 2. BMP文件头 ---- BMP文件头数据结构含有
2013-04-14 21:57:34
1141
转载 MFC使用自定义资源加载PNG
在MFC中,使用资源中的BMP是简单的,但是若是使用其他的图片资源,却是不容易的.以下为解决办法.首先,在Resource.h里面定义ID:#define IDB_BG 131然后在rc文件里面添加代码:IDB_BG RCPNG "res\\背
2013-04-10 17:08:57
761
转载 使用_CrtSetDbgFlag检测内存泄露
介绍:动态分配、回收内存是C/C++编程语言一个最强的特点,但是中国哲学家孙(Sun Tzu,我不知道是谁?那位知道?)指出,最强的同时也是最弱的。这句话对C/C++应用来说非常正确,在内存处理出错的地方通常就是BUGS产生的地方。一个最敏感和难检测的BUG就是内存泄漏-没有把前边分配的内存成功释放,一个小的内存泄漏可能不需要太注意,但是程序泄漏大块内存,或者渐增式的泄漏内存可能引起的现象是:
2013-03-25 14:47:02
644
转载 GDI+ gif文件的显示和格式转换
出处:http://blog.youkuaiyun.com/tangaowen/article/details/6083317 怎么获取gif文件的每一帧,并且显示出来呢? 1.怎么用gid+显示gif文件 总体思路:用Image装载图像,用Graphic显示图像。 相关函数:
2012-12-04 11:47:33
807
转载 vc文件复制和删除及移动和重命名
VC 移动,复制,删除文件(SHFileOperation)总结一下SHFileOperation的用法,希望对大家有用//删除文件或者文件夹bool DeleteFile(char * lpszPath) { SHFILEOPSTRUCT FileOp={0}; FileOp.fFlags = FOF_ALLOWUNDO | //允许放回回收站
2012-11-26 13:51:45
737
转载 C++如何获取系统时间
//方案- 优点:仅使用C标准库;缺点:只能精确到秒级 #include #include int main( void ) { time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天%z",localtime(&t) ); puts
2012-11-26 10:35:06
424
转载 Windows Winnet 实现HTTP 文件断点续传下载
http://www.cppblog.com/bigsml/archive/2008/04/17/47449.html1. MFC 下载文件有2种方法: a)创建CInternetSession 对象 -> 调用 CInternetSession::OpenURL 该函数解析URL,然后打开与URL指定的服务器连接,同时返回一个只读的CInternetFile对象 ->
2012-09-12 14:08:16
3504
转载 VC 获取系统特殊文件夹的路径如:系统目录,桌面等
如果需要,请在StdAfx.h中添加 #include [cpp] view plaincopyprint?TCHAR MyDir[_MAX_PATH]; SHGetSpecialFolderPath(this->GetSafeHwnd(),MyDir,CSIDL_APPDATA,0); AfxMessageBox(MyDir); 其中第三个
2012-08-15 13:44:27
808
转载 vc使用默认的浏览器打开网页代码
可以有两种的方式第一:通过winecec()函数,但是有取得注册表的键值第二:通过shellexec()他很简单 就是一句话ShellExecute(NULL,"open","f:\\11.htm",NULL,NULL,SW_SHOW); 把第一种的代码// HKEY hKetRoot,hkeySub;// charValueName[MAX_PATH]
2012-07-24 14:26:46
3945
原创 VC往PE文件末尾读写数据
//往文件末尾写数据void CwritePEFileDlg::OnBnClickedButton2(){ TCHAR strPath[MAX_PATH]; wcscpy(strPath, L"d:\\1.exe"); HANDLE handle = CreateFile(strPath, GENERIC_WRITE, FILE_SHARE_WRITE,
2012-07-11 14:15:22
1501
转载 VC++常用数据类型及其操作详解 [
一.VC常用数据类型列表二.常用数据类型转化2.1数学类型变量与字符串相互转换2.2 CString及string,char *与其他数据类型的转换和操作●CString,string,char*的综合比较●数学类型与CString相互转化●CString与char*相互转换举例●CString 与 BSTR 型转换●VARIANT 型转化成 CString 型
2012-07-10 14:09:04
4592
1
转载 VC常用数据类型使用转换详解
2002-7-29 12:40:48 PCVC.NET 程佩君 阅读次数: 7824 刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float
2012-07-10 10:47:40
428
转载 VC隐藏文件和判断文件是否存在
一:隐藏文件。 1.WinExec函数。 该函数执行一个cmd命令,如修改 C:\\Documentsand Settings\\eMLab\\Application Data\\test.txt 文件属性为隐藏可以: CStringstrFileName = "C:\\Documents and Settings\\
2012-07-02 14:54:49
838
转载 DuiLib——xml配置项
DUILibxml配置项根节点 子类 属性 类型Window |--------Image 图片信息 | o------name
2012-07-02 11:23:27
3533
转载 配置GDI+
1.配置lib属性页---链接器---输入---附加依赖项---手动键入GdiPlus.lib 2.加入头文件在stdafx.h中加入GDI+的头文件#include "gdiplus.h"using namespace Gdiplus; 3.声明成员变量例如建立的工程为TestGDI此时在TestGDI.h的classCTestGDIApp : publi
2012-06-07 14:24:21
596
转载 Unicode字符集下CString与char *转换
在Visual C++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2005环境下运行时会报各种各样的错误,这里总结了在Visual C++.NET2005环境中Unicode字符集下CString和char *之
2012-05-30 10:31:43
328
转载 MultiByteToWideChar和WideCharToMultiByte用法详解
//========================================================================//TITLE:// MultiByteToWideChar和WideCharToMultiByte用法详解//AUTHOR:// norains//DATE:// 第一版:Monday 25-Decembe
2012-05-24 15:56:55
245
转载 BSTR、char*和CString转换
(1) char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:char chArray[] = "This is a test";char * p = "This is a test"; 或LPSTR p = "This is a test"; 或在已定义Unicode应的用程序中
2012-05-24 10:23:05
515
转载 关于CBitmap,LoadBitmap 的使用
LoadBitmap1.Platform SDK 如果位图的ID定义为IDB_BITMAP1则 HBITMAP hBitmap=LoadBitmap(AfxGetInstanceHandle(),(LPSTR)IDB_BITMAP1); 如果位图的ID定义为"IDB_BITMAP1"则 HBITMAP hBitmap=LoadBitmap(AfxGetInstanceHan
2012-05-04 11:42:29
20203
转载 如何在程序中动态设置墙纸
大家都知道设置WINDOWS桌面墙纸的WIN32 API是SystemParametersInfo, 使用SPI_SETDESKWALLPAPER参数便能设置墙纸:::SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\\ABitmap.bmp ", SPIF_SENDWININICHANGE | SPIF_U
2012-05-02 14:10:30
1378
转载 CToolTipCtrl使用详细解说
ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。 一般用法步骤:1. 添加CToolTipCtrl成员变量 m_tt。2. 在父窗口中调用EnableToolTips(TRUE);3. 在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Ti
2012-05-02 11:51:06
525
转载 MFC GDI绘图基础
一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输出像素、在打印机上输出硬拷贝
2012-05-02 10:27:01
2732
转载 MFC贴图
怎样去除图片上的背景颜色实现透明贴图?查了一些资料并参考一些帖子总结了一下有几种方法由简单到复杂:方法一:使用TransparentBlt;void CGdiDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this);// 用于绘制的设备上下文 SendM
2012-04-26 15:05:41
7454
转载 WM_CTLCOLOR和OnCtlColor消息的用法
WM_CTLCOLOR和OnCtlColor消息的用法(2009-01-16 13:56:36) 很多人都觉得自己的程序的界面不那么美观,往往VC默认产生的对话框比较单调,因此很多人往往找到很多其它的控件对对话框进行美化修饰,例如给静态控件设置字体,设置背景颜色等等,其实这些完全可以由VC自己的WM_CTLCOLOR消息来完成! WM_CTLCOLOR消息用来完成对EDIT、
2012-04-24 09:28:28
573
转载 设置控件背景色
1.在对话框的类中加入成员: CBrush m_brush; COLORREF m_color; 2.在OnInitDialog()中,加入 m_brush.CreateSolidBrush(RGB(255,255,255)); //此处设置的RGB值可以改变控件的背景色。 m_color=RGB(0,0,0)
2012-04-23 17:43:52
1427
转载 MFC隐藏和显示一个控件的方法
通常,我们在用MFC做界面的时候,控制控件的出现和隐藏很重要,同时这也体现出界面的友好和灵活性。那么,怎样在MFC中实现一个控件的隐藏和显示呢?这里,我就说一个我知道的简单方法。第一、先获得控件对象。这里用一个EditBox控件为例。 CEdit *edit = (CEdit*)GetDlgItem(IDC_EDIT_XXXX); 其中,IDC_
2012-04-23 14:23:23
46708
3
转载 MFC之托盘
在VC++中,想实现最小化MFC程序的时候,最小化到系统托盘,需要调用NOTIFYICONDATA类下面我们就来讲解一下如何简单实现一个系统托盘我们以对话框程序为列第一步:在Dlg类中//定义一个NOTIFYICONDATA类的成员变量,用来设置托盘NOTIFYICONDATA NotifyIcon;第二步:声明一个消息响应函数 afx_msg void OnNotifyIcon(
2012-04-20 17:35:02
9372
1
转载 C++中,CTime 与 CString转换
C++中,CTime 与 CString转换CTime m_StartTime1 = CTime::GetCurrentTime();CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" );使用sprintf及sscanf函数进行CString与CTime之间的转换 一.将CString转为CTim
2012-04-20 15:14:30
990
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人