keivin2006
一名c/c++/vc/qt 的小学生,“精通”c,“精通”c++,“精通”vc++,“精通”php,“精通”qt,“精通”java,
“精通”python,“精通”c#,“精通”...! 编不下去了,只要见过名字的都我“精通”....为哈,因为我现在是csdn“砖家”了!
本人qq: 88520350
qq学习群:930432714 (C/C++/QT/VC学习交流群) 海量学习资料都分享在群里
指点学习方向,掌握学习要点,快速提高技术水平, 技术分享,共同学习!
展开
-
二进制转ascii码 c++代码
ascii码就是最基本的一个字节的二进制数据,但不是直接相等,因为ascii码不仅表示数字,还要表示字符,它们统一安排在一起顺序排序成表,其中的顺序号即为我们通称的ascii码。顺序0~9首先被用来表示字符(null)/没有任何书写笔画的空着的‘空’字符到(tab)/制表跳格键符,数学的数字0~9被顺延至序号为48~57位置,所以数字0在ascii的序号即位置为48,而48的二进制数值为110000,同理,数字2的序号为50,50的二进制数值为110010,写成一个字节为00110010,这正是数学数字.原创 2021-07-31 17:45:35 · 3090 阅读 · 1 评论 -
16进制转换10进制
int hextodec(char* phexdata){char* ptemp = phexdata;if (*ptemp =='\0'){return 0;}while (*ptemp =='0'){ptemp++;}int dec =0;char c ;while (c=*ptemp++){dec原创 2012-04-12 17:52:28 · 4117 阅读 · 20 评论 -
10进制转16进制
void decToHex(int data,char* hex){ int a1,a2,a3,a4; a1 =data&0x000000FF; a2 =data&0x0000FF00; a3 =data&0x00FF0000; a4 =data&0xFF000000; sprintf(hex,"%.2x%.2x%.2x%.2x",a原创 2012-04-25 09:57:01 · 3783 阅读 · 23 评论 -
十六进制转ascii 码
int hexToAscii(constchar *Hex, int HexLen, char *Ascii) { int i; char *AscPtr; const char *HexPtr; char Temp; HexPtr=Hex; AscPtr=Ascii;原创 2012-04-25 14:39:15 · 4530 阅读 · 18 评论 -
把字符串IP地址转成整数IP地址
unsignedint ConvertFromIP(const char * ipaddr){unsigned int ipint =0; char p[32]={0}; strcpy(p, ipaddr);char * c = strchr(p,'.');char * cc = p;if(c == NULL){re原创 2012-05-12 14:51:01 · 4115 阅读 · 21 评论 -
小写数字转换成大写数字
#includevoid main(){double x,y;char *ch[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};char *ch1[]={"拾","佰","仟","万","拾","佰","仟","亿"};char num[256];long i,n,j,m,y1;printf("input:");scanf原创 2012-07-19 15:09:31 · 4289 阅读 · 24 评论 -
windows查找进程关闭进程
void CCannonPhotoApp::StopProcess() {CString currentPro;CString canphoto = _T("EWatch.exe");CString CDPROC = _T( "CDPROC.exe");CString CDPROCMN = _T("CDPROCMN.exe");HANDLE hPr原创 2012-10-19 17:01:33 · 3971 阅读 · 25 评论 -
waveInStop死锁
//MMRESULT mmRet = waveInOpen(&m_hWaveIn, /*nDevId*/WAVE_MAPPER, &waveFormat, (DWORD_PTR)WaveInProcFun, (DWORD_PTR)this, CALLBACK_FUNCTION); //采用回调用的方法,当你异常拔插设备的时候,很容易导致程序死锁原创 2017-05-05 09:50:51 · 4664 阅读 · 23 评论 -
控制台录音生成wav文件
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "stdafx.h"#include #include #include #pragma comment ( lib, "winmm.lib" )static const int HDRCOUNT原创 2017-05-05 10:40:30 · 3478 阅读 · 12 评论 -
dierectdraw 7显示视频
bool CDrawView::CreateSurface(HWND hWnd, Sint32 lWidth, Sint32 lHeight){ bool bRet = false; do { HRESULT hr = DirectDrawCreate(NULL, &m_lpDDraw, NULL); if (DD_O原创 2017-05-13 10:12:53 · 2684 阅读 · 21 评论 -
VC操作注册表(附demo)
代码实现了:创建,读取,更改,删除头文件:////Registry.h#if !defined(AFX_REGISTRY_H__E0610A5D_7166_4D02_9D7E_11AF7CF8E229__INCLUDED_)#define AFX_REGISTRY_H__E0610A5D_7166_4D02_9D7E_11AF7CF8E229__INCLUDED_//#include <winreg.h>/////////////////////////////////原创 2020-12-17 14:59:16 · 710 阅读 · 34 评论 -
VC++获取网络占用率(附源码)
VC++开发常用功能一系列文章(欢迎订阅,持续更新...)//获取网络占用率#include <WtsApi32.h>#include <conio.h>#include <windows.h>#include <tchar.h>#include <stdio.h>#include <Iphlpapi.h>#include "Public.h"#pragma comment(lib, "Iphlpap...原创 2020-12-14 11:56:21 · 2490 阅读 · 39 评论 -
vc++获取指定IP的网卡编号(附源码)
VC++开发常用功能一系列文章(欢迎订阅,持续更新...)代码主要是针对多网卡:比如一台笔记本,有wifi网卡,还有普通的RJ45 ,我们怎么具体的绑定到指定的网卡呢,等操作!1.获取指定IP的网卡编号//获取指定IP的网卡编号DWORD SYSINFO::GetIfIndexOfIp(ULONG ulIp){ PMIB_IPADDRTABLE pIpAddrTable = (PMIB_IPADDRTABLE)malloc(sizeof(MIB_IPADDRTABLE)...原创 2020-12-14 11:44:57 · 1101 阅读 · 35 评论 -
c++ UDP服务端&客户端demo
UDP客户端demo 如下:#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <netdb.h>//客户端源码#include <sys/types.h>#include <netinet/in.h>#include <sys/un.h>#include <sys/s.原创 2020-12-14 09:46:30 · 1930 阅读 · 27 评论 -
vc++获取桌面应用程序图标位置
VC++开发常用功能一系列文章(欢迎订阅,持续更新...)//==取桌面图标位置=======================BOOL CIconToolTipDlg::GetIconRect(CString strIconName,LPRECT lpRect,HWND &hDeskListView){ HWND hDeskWnd=NULL;//桌面上SysListView32的窗口句柄 HWND hWnd=::FindWindow(_T("WorkerW"),NULL)...原创 2020-12-14 09:34:08 · 1159 阅读 · 21 评论 -
c++AES加密解密(附源码)
AES,高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度可以.原创 2020-12-13 14:10:01 · 4379 阅读 · 42 评论 -
vc++自动断开wifi功能
VC++开发常用功能一系列文章(欢迎订阅,持续更新...)自动断开wifi,并删除相关wifi profileprofile 就是那个记住密码的功能,我们需要清除这个功能......以前的文章写个怎么自动连接wifi功能,这一篇主要是怎么断开它.....1. 连接1)显示本机保存的profiles,配置文件是以wifi的ssid命名的.netshwlanshowprofiles2)用netshwlanconnectname=xxxxx 连接其中一个pr...原创 2020-12-07 15:29:41 · 931 阅读 · 26 评论 -
opencv根据摄像头名称打开摄像头(附源码)
VC++开发常用功能一系列文章(欢迎订阅,持续更新...)OpenCV的VideoCapture是一个视频读取与解码的API接口,支持各种视频格式、网络视频流、摄像头读取。针对一般摄像头的读取,opencv为了实现跨平台读取摄像头时是使用的摄像头索引,1 VideoCapture capture(int index);一般而言电脑自带的摄像头id=0,但是也存在一些特殊情况,有些usb的摄像头接入笔记本后,usb摄像头的id会变位0,原有的笔记本id则变为1,所以为了程序的稳定性,...原创 2020-12-07 10:11:45 · 5632 阅读 · 54 评论 -
3des加解密(+MD5) c++实现(附源码)
VC++开发常用功能一系列文章(欢迎订阅,持续更新...)源代码demo已上传到百度网盘:永久生效 ,文章尾部附 百度链接3DES,也称为3DESede或TripleDES,是三重数据加密,且可以逆推的一种算法方案。1975年美国IBM公司成功研究并发布了DES加密算法,但DES密码长度容易被暴力破解,通过对DES算法进行改进,针对每个数据块进行三次DES加密,也就是3DES加密算法。但由于3DES的算法是公开的,所以算法本身没什么秘密可言,主要依靠唯一密钥来确保...原创 2020-12-06 21:06:03 · 3424 阅读 · 33 评论 -
VC++实现系统托盘功能(附源码)
VC++开发常用功能一系列文章(欢迎订阅,持续更新...)Windows桌面的系统托盘位于任务栏的右侧,即Windows桌面的右下方,它常用来显示一些系统的状态。如系统时间,音量控制以及其他的一些图标。常常能见到一些优秀的软件在运行后会将其应用程序图标加入到系统托盘中,如金山词霸。如果能将自己编写的应用程序的图样也加入到系统托盘中,将会使程序显得很有专业水准。如下图:这些应用都是应用程序的托盘功能:其实这个功能要实现比较简单,把图准备好,主要用到Shell_N...原创 2020-12-06 20:24:20 · 3069 阅读 · 55 评论 -
VC++实现内存映射文件(附源码)
VC++开发常用功能一系列文章(欢迎订阅,持续更新...)内存映射文件:是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,使得内存映射文...原创 2020-12-06 16:38:38 · 1053 阅读 · 24 评论 -
time_t与SYSTEMTIME相互转换
***time_t2SYSTEMTIME*/SYSTEMTIME TimetToSystemTime(time_t t){ FILETIME ft; SYSTEMTIME pst; LONGLONG nLL = Int32x32To64(t, 10000000) + 116444736000000000; ft.dwLowDateTime = (DWORD)nLL; ft.dwHighDateTime = (DWORD)(nLL >&g原创 2020-10-16 14:12:09 · 1304 阅读 · 18 评论 -
VC++判断网络连接状态(局域网,英特网)
主要是用来判断网络状态,是不是连接上网线啊,wifi是否连接上来了啊!这种一般是用在检测网络连接,或者断开网络,启用或禁用网络时可以用到,其它没什么用!static BOOL DoHaveInternetConnection(){ BOOL bRet = FALSE; // 如果函数返回FALSE,则肯定没有连接 DWORD dwFlag; __try { if (InternetGetConnectedState(&dwFlag, 0)) { // 必须有下列任意一原创 2020-10-15 16:31:31 · 4969 阅读 · 53 评论 -
VC++查找系统串口个数
通讯注册表枚举系统有几个串口功能int CIOCOMDlg::FindComPortCount(CStringArray &arrCom)//找串口个数{ arrCom.RemoveAll(); HKEY hkey; // 主根健名 LONG lRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("HARDWARE\\DEVICEMAP\\SERIALCOMM"), NULL, KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KE原创 2020-10-15 11:59:53 · 770 阅读 · 18 评论 -
vc++高精度时间计算
class CTimewatch {public:CTimewatch() { QueryPerformanceFrequency(&m_liPerfFreq); // Start(); } __int64 Start() { QueryPerformanceCounter(&m_liPerfStart); return m_liPerfStart.QuadPart; } __int64 N原创 2020-10-14 22:24:42 · 522 阅读 · 14 评论 -
c++获取网卡型号
代码一看就懂,比如我要获取的就是网卡是intel还是realteck的BOOL CITDlg::GetLocalAdaptersInfo(int& flag){ //IP_ADAPTER_INFO结构体 PIP_ADAPTER_INFO pIpAdapterInfo = NULL; pIpAdapterInfo = new IP_ADAPTER_INFO; //结构体大小 unsigned long ulSize = sizeof(IP_ADAPTER_INFO); //获取适配原创 2020-10-14 17:01:40 · 583 阅读 · 31 评论 -
vc改变MessageBox三个按钮的文本值
使用场景:1.修改按钮文本(一般用于国际化)2.我们又不想自己写一个窗口来实现MessageBox3.有时只是为了一个简单的弹框,而文字提示 windows默认的又不是我们想要的MessageBox 上的按钮文字并不能直接修改,一种方法可以使用钩子,间接修改按钮上的文字,另一种就是自己做一个类似 MessageBox 功能的对话框。excample`// 定义一个钩子句柄HHOOK hMsgBoxHook; // 定义CBT钩子过程LRESULT CALLBACK MsgBoxCBTP原创 2020-10-14 10:56:32 · 2555 阅读 · 10 评论 -
c++各种字符串相互转换
头文件#pragma once#include <wtypes.h>#include <string>#include <xstring>using std::string;using std::wstring;class CodeConverter{public: static wstring AcsiiToUnicode(const string& acsii_string); static string AcsiiToUtf8(原创 2020-10-14 10:13:54 · 482 阅读 · 28 评论 -
vc++获取应用程序完整路径
HMODULE GetSelfModuleHandle(){MEMORY_BASIC_INFORMATION mbi;return ((::VirtualQuery(GetSelfModuleHandle, &mbi, sizeof(mbi)) != 0) ? (HMODULE)mbi.AllocationBase : NULL);}//在程序中通过调用该函数即可获取到dll的完整路径至strDllFullPath中void GetFullPathOfDll(std::string&am原创 2020-10-14 10:00:33 · 563 阅读 · 12 评论 -
我的c++常用宏
#ifndef max#define max(a,b) (((a) > (b)) ? (a) : (b))#endif#ifndef min#define min(a,b) (((a) #endif#endif /* NOMINMAX */#define MAKEWORD(a, b) ((W原创 2017-04-12 14:58:28 · 3797 阅读 · 10 评论 -
高精度定时器
class CTimewatch{public:CTimewatch() { QueryPerformanceFrequency(&m_liPerfFreq); Start(); } __int64 Start() { QueryPerformanceCounter(&m_liPerfStart); return m_liPerfS原创 2017-04-07 10:34:41 · 3365 阅读 · 9 评论 -
写日志封装类
#pragma once#ifndef CPRINTHELP_HHHHHH#define CPRINTHELP_HHHHHH#include #define FILELINE_FUNC_F "{ %s(%d)->[ %s ] } "#define FILELINE_FUNC_I __FILE__,__LINE__,__FUNCTION__原创 2017-04-07 10:30:35 · 3307 阅读 · 13 评论 -
ini文件读写封装类
#ifndef _PROFILE_H_#define _PROFILE_H_/*** 读写INI文件的类 */class CProfile{public: CProfile(); ~CProfile(); /// 设置INI文件名 VOID SetProfile( LPCTSTR szIniName );原创 2017-04-07 10:09:18 · 4930 阅读 · 24 评论 -
tcp封装类
enum MySocketError{MySOCKET_NO_ERROR=0,MySOCKET_INVALID_ERROR_CODE,MySOCKET_ACCEPT_ERROR,MySOCKET_BIND_ERROR,MySOCKET_BUFOVER_ERROR,MySOCKET_CONNECT_ERROR,MySOCKET_FILESYSTEM_ERROR,MyS原创 2017-04-07 08:58:31 · 5357 阅读 · 18 评论 -
线程封装类(3) win
#ifndef _WORKTHREAD_H_#define _WORKTHREAD_H_#if _MSC_VER > 1000#pragma once#endif#include //回调函数指针typedef void (*THREAD_ROUTINE)(void *);class CWorkThread {pu原创 2017-04-07 08:47:22 · 3310 阅读 · 12 评论 -
线程封装类(2)
#ifndef __THREAD_H__ #define __THREAD_H__#ifndef WIN32#include #define T_CALLBACK typedef pthread_t AIWHANDLE; #else#include #define T_CALLBACK WINAPI typedef H原创 2017-04-07 08:31:49 · 3381 阅读 · 10 评论 -
单例模式
class CP2PMgr{public:CP2PMgr(bool isCaller=true);~CP2PMgr(void); CP2PMgr(const CP2PMgr &); CP2PMgr & operator = (const CP2PMgr &); public:static CP2PMgr* getInstance()原创 2017-04-07 08:40:15 · 3381 阅读 · 0 评论 -
显式加载动态库(多平台)
.hclass DlibX {public:DlibX ();virtual ~DlibX ();public:void* GetFunction( const CHAR* szFuncName );void FreeLibrary();BOOL LoadLibrary( TCHAR* szPathName );public:HMODULE m_hM原创 2017-04-12 15:16:39 · 3669 阅读 · 12 评论 -
vc关闭立体声混音
#include BOOL SetMicrPhoneVolume(DWORD dwVolume) { BOOL bResult = FALSE; BOOL bfind =FALSE;try { int mixerNum = (int)mixerGetNumDevs(); //m_log->WriteLog(LITGHTINTRANSMODULE原创 2017-04-05 15:15:06 · 3755 阅读 · 21 评论 -
根据进程id找窗口句柄(2)
HWND g_apphwnd;//window handleint CALLBACK EnumWindowsProc(HWND hwnd, LPARAM param){DWORD pID;DWORD TpID = GetWindowThreadProcessId(hwnd, &pID);//get process idif (TpID == (DWORD)para原创 2017-05-11 11:50:23 · 3017 阅读 · 12 评论