C++
里口耐
总结错误,不断前进。
展开
-
剑指 Offer 55 - I. 二叉树的深度
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。提示:节点总数 <= 10000题解1:1.判断树节点是否为空,若为空,返回深度为0;2.遍历左子树;3.再遍历右子树4.判断左右子树深度,谁大,返回(谁+1)(为了..原创 2021-02-26 23:00:21 · 95 阅读 · 0 评论 -
孙鑫MFC学习笔记-22 数据库编程
22 数据库编程22.1数据库访问技术22.1数据库访问技术微软提供了标准的访问数据库接口:1.ODBC(Open Database Connectivity),开放数据库互连。它为编写关系数据库的客户软件提供了一种统一的接口。ODBC提供一个单一的API,可用于处理不同数据库的客户应用程序。使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信。面向C/C++开发人员。2.DAO(Data Access Object),数据访问对象。它是微软提供给Visual Basi原创 2020-12-21 22:36:35 · 245 阅读 · 0 评论 -
CString查找子字符串用Find
CString str1 = " abcdef";CString str2 = "abc";if(str1.Find(str2) >= 0){ return TRUE;}else{ return FALSE;}str1包含了str2,所以最后返回TRUE原创 2020-12-10 16:01:20 · 1959 阅读 · 0 评论 -
孙鑫MFC学习笔记-21HOOK编程
通过SetWindowsHookEx安装钩子:HHOOK SetWindowsHookEx(int idHook,//将要安装的钩子过程的类型HOOKPROC lpfn,//指向相应的钩子过程HINSTANCE hMod,//指定lpfn指向的钩子过程所在的DLL的句柄DWORD dwThreadId//指定与钩子过程相关的线程标识);SetWindowsHookEx函数的作用是安装一个应用程序定义的钩子过程,并将其放到钩子链中。...原创 2020-12-07 22:00:13 · 311 阅读 · 0 评论 -
error C2664: “sscanf”: 不能将参数 1 从“unsigned short”转换为“const char *”
错误 5 error C2664: “sscanf”: 不能将参数 1 从“unsigned short”转换为“const char *” 代码:unsigned shortushNumber;UINT32 uiNumber; sscanf(ushNumber, "%X", &(uiNumber));//该句代码出错解决办法:用CString做中转CString strValue = _T("");strValue.Format(_...原创 2020-11-11 15:14:57 · 889 阅读 · 0 评论 -
MFC中PostQuitMessage(0)退出进程前,为什么MessageBox和AfxMessage会失效?
PostQuitMessage(0)搜索得到:函数原型:VOID PostQuitMessage(int nExitCode // exit code);参数:nExitCode: 表征应用程序退出码.该值将作为WM_QUIT消息的wParam参数送到消息队列.返回值:该函数没有返回值.备注:PostQuitMessage函数投递一个WM_QUIT消息到线程消息队列并且立即返回.该函数简单的通知系统线程请求马上退出.当线程从它的消 息队列收到WM_QUIT消息时,将...原创 2020-11-02 14:12:14 · 434 阅读 · 0 评论 -
SetMenu(&menu);出现断言错误
SetMenu(&menu);解决办法:CMenu menu;一定要最为类的成员变量,而不是局部变量,若为局部变量会出现assert断言问题原创 2020-10-08 16:04:37 · 467 阅读 · 0 评论 -
注册dll命令
-u:注册成功与否结果提示,-s注册成功与否结果不提示regsvr32.exe -u test.dllregsvr32.exe -stest.dll原创 2020-09-27 10:36:46 · 801 阅读 · 0 评论 -
CStdioFile 以字符串形式写入文件一行
CStdioFile mFile; CFileException mExcept; mFile.Open(_T("D:\\TEST.ini"),CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite,&mExcept); mFile.SeekToEnd(); CString stroutput = "I am a string"; stroutput += "\r\n"; mFile.WriteS...原创 2020-09-03 17:48:31 · 367 阅读 · 0 评论 -
GetPrivateProfileInt读取ini文件中的值
UINT GetPrivateProfileInt( LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nDefault, LPCTSTR lpFileName);参数:lpAppName:ini文件中段的名称,该值采用字符串形式。lpKeyName:段中关键字的名称,该值采用字符串形式。nDefault:如果没有找到,填充的默认值。lpFileName:初始化文件的名称。如果此参数不包含文件的完整路径,则系统在Wind...原创 2020-08-22 11:20:49 · 768 阅读 · 0 评论 -
2020-08-11 map的计数:++比count速度快
intcountCharacters(vector<string>&words,stringchars){ map<char,int>charmap;//统计chars中各个字符出现的个数,存入哈希表中charmapfor(charc:chars){//charmap[c]=count(chars.begin(),chars.end(),c);...原创 2020-08-11 10:02:50 · 143 阅读 · 0 评论 -
map重载[]的用法
#include <stdio.h>#include <stdlib.h>#include <map>#include <iostream>using namespace std;void main(){ map<int,int> m1; m1.insert(pair<int, int>(1, 1)); m1.insert(map<int, int>::value_type(2, 2)); m1[3] .原创 2020-08-02 11:05:59 · 1024 阅读 · 0 评论 -
MFC CGridCtrl 表格控件隐藏一行或者一列
CGridCtrl m_grid; iRow:行号iCol: 列号1.隐藏一行:将该行高度设置为0m_grid.SetRowHeight(iRow,0);2.隐藏一列:将该列的宽度设置为0m_grid.SetColumnWidth(iCol, 0);设置该行/该列隐藏后,在用户调节行宽和列高时,隐藏的行/列显示:m_grid.EnableHiddenColUnhide(TRUE);m_grid.EnableHiddenRowUnhide(...原创 2020-07-31 11:42:12 · 1240 阅读 · 0 评论