C++新手自学成长
whitehack
这个作者很懒,什么都没留下…
展开
-
VS 2008 MFC CString 转换 int
m_ed.GetWindowTextW(str); char * time; time=(char *)(LPCTSTR)str; int titi; titi=atoi(time); 网上搜索了很久.也没有找到好的转换 然后我 偶然的试了这个方法..没想到可以成功转换 = =#原创 2008-10-21 21:57:00 · 1225 阅读 · 0 评论 -
CriticalSection临界区封装类
<br />#pragma once //编译一次class CCriticalSection //临界区封装类{public: CCriticalSection(DWORD dwSpinCount=0) //使用旋转锁 参考值 4000 不为0 则会创建一个事件内核对象(多线程同时访问这个事件内核对象才有用) { m_bInit=FALSE; if (dwSpinCount==0) { InitializeCriticalSection(); }原创 2010-12-31 17:23:00 · 3684 阅读 · 0 评论 -
枚举QQ或者TM进程、标题、窗口信息、QQ号码昵称等
<br />相关链接: http://bbs.eyuyan.com/read.php?tid=244922&fpage=3<br /> <br /><br />begin<br /> <br />网页返回:<br />portraitCallBack({"xxxxxxxx":["http://imgcache.qq.com/qzone_v4/client/userinfo_<br />icon/5001.gif",157,0,0,0,0,"xxxxx",0]})<br />网页返回end<br /> <b原创 2011-01-03 15:15:00 · 3303 阅读 · 0 评论 -
今天发现 wprintf 竟然不支持中文!
<br />#include <locale><br /> <br />包含头文件先<br /> <br />程序入口调用:<br />setlocale(LC_CTYPE, "");//让wprintf 支持中文<br /> <br />为啥?别问我 我也不知道为啥<br />那为啥要call setlocale? 我还是不知道为啥原创 2011-01-03 17:28:00 · 2377 阅读 · 0 评论 -
文本动态随机加密
<br /> <br /> <br />#include <Windows.h>#include <atlstr.h> //可以用 cstring了 #include <stdio.h>//#pragma comment(lib,"kernel32.lib")//#pragma comment(lib,"user32.lib")//#pragma comment(linker, "/SUBSYSTEM:windows")//#pragma comment(linker, "/ENTR原创 2011-01-04 14:12:00 · 2358 阅读 · 0 评论 -
原来转换 网页utf8 如此简单
<br /> <br /> <br /> <br />#include <Windows.h>#include <atlstr.h> //可以用 cstring了 哈哈哈哈#include <tlhelp32.h>#include <stdio.h>#include <locale>//#pragma comment(lib,"kernel32.lib")//#pragma comment(lib,"user32.lib")//#pragma comment(linker, "/原创 2011-01-04 07:18:00 · 2106 阅读 · 0 评论 -
vs 调用com对象 Msxml2.XMLHTTP 获取网页源码
<br />到处扯 终于扯到 vs 能用的 com对象调用方式了<br /> <br />相信有不少人在找vs c++ 调用 com对象的方法<br /> <br />参考 http://topic.csdn.net/u/20070315/16/5a9a278f-4bf1-43e4-908e-a78ad69b0796.html<br /> <br /> <br />写的非常乱 也不知道有没有资源泄露<br />#include <Windows.h>#include <atlstr.h> //可以用 c原创 2011-01-03 11:13:00 · 4338 阅读 · 1 评论 -
win32 api 取大体积文件大小
<br />又是剽窃核心编程..<br />#include <stdio.h>#include <Windows.h>#include <tchar.h>#include <locale>int main(){ //取文件大小 _tsetlocale(LC_CTYPE,TEXT("")); DWORD dwSizeHigh; DWORD dwSizeLow=GetCompressedFileSize(TEXT("E://Virtual Machines//Wi原创 2011-01-08 18:13:00 · 3354 阅读 · 0 评论 -
用windows api 分解文件 路径
<br />#include <stdio.h>#include <Windows.h>#include <wchar.h>#include <stdlib.h>#include <locale>int main(){ setlocale(LC_CTYPE, "");//让wprintf 支持中文 LPTSTR szfileName = new TCHAR[MAX_PATH]; GetModuleFileName(NULL, szfileName , MAX_PATH);原创 2011-01-08 16:25:00 · 2228 阅读 · 0 评论 -
一个简单的纤程演示... 还有核心编程上的 纤程 例程
<br />#include <windows.h>#include <tchar.h>#include <stdio.h>PVOID g_MainFiber=NULL;// This function accepts a number and converts it to a// string, inserting commas where appropriate.PTSTR BigNumToString(LONG lNum, PTSTR szBuf, DWORD chBufSiz原创 2011-01-17 00:50:00 · 2543 阅读 · 0 评论 -
c++ 重载 new delete 用堆来分配内存
<br />#include <windows.h>#include <tchar.h>#include <stdio.h>class CSomeClass{public: DWORD m_dwValue;//一个成员变量 CSomeClass() { printf("Run %s /r/n",__FUNCTION__); m_dwValue=0; } ~CSomeClass() { printf("Run %s /r/n",__FUNCTION原创 2011-01-25 09:10:00 · 2097 阅读 · 0 评论 -
TLS 局部线程储存 一个演示小例子
<br />#include <Windows.h>#include <stdio.h>__declspec(thread) int gt_nNum=0;//全局tls变量CRITICAL_SECTION g_cs;//临界区void WINAPI TestThread(int * pParam){ __declspec(thread) static int st_nNum=0;//静态tls变量 srand(GetTickCount()); for (int i=0;i<5原创 2011-01-28 11:06:00 · 1808 阅读 · 0 评论 -
使用 vs2010 编译 expat 静态库
<br />使用 vs2010 建立一个静态库工程<br />设置使用多字节集<br /> <br /> <br />然后按照 expat_static 内用到 的所有文件复制到你的静态库工程目录下<br /> <br />然后按照头文件 源文件 添加进你的静态库工程<br /> <br /> <br />然后修改expat.h <br />在第一行加入<br />#define XML_STATIC 1<br /> <br /> <br /> <br />然后编译即可<br />原创 2011-04-27 22:20:00 · 3611 阅读 · 1 评论 -
精确计算代码段执行时间
#include #include #include #include #include //...........int WINAPI findString(int lpmem,int memsize,int lpString,int StringSize,int原创 2010-12-24 03:50:00 · 2104 阅读 · 0 评论 -
一个 while 实现 C 翻转单向链表
听说这是 O(1) 空间复杂度 O(n) 时间复杂度 ?有大神解释下下面这个算吗?struct MyLink { MyLink* next; int nVal;};MyLink* genLink(MyLink* next,int nval){ MyLink* tmp = new MyLink; tmp->nVal = nval; tmp->next =原创 2016-05-04 21:29:21 · 1504 阅读 · 0 评论 -
剽窃vs2010 mfc 工程 让程序自动嵌入xp界面风格 系统风格
<br />// x86#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'/"")// _M_X64#pragma comment(linker,"/manifest原创 2010-12-29 16:20:00 · 4114 阅读 · 2 评论 -
进程线程伪句柄转为真实句柄
<br /> HANDLE hProcess=NULL; DuplicateHandle(GetCurrentProcess(), GetCurrentProcess(), GetCurrentProcess(), &hProcess, 0, FALSE, DUPLICATE_SAME_ACCESS);//伪进程句柄转为真实进程句柄 //... //不用的时候必须关闭 不然会有资源泄露 CloseHandle(hProcess); HANDLE hTh原创 2010-12-23 20:58:00 · 2757 阅读 · 0 评论 -
一个小函数 进程ID取进程全路径
void GetProcessName(DWORD PID, PTSTR szProcessName, size_t cchSize){ HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, PID); if (hProcess == NULL) { _tcscpy_s(szProcessName, cchSize, TEXT("???")); ret原创 2010-12-20 05:44:00 · 3252 阅读 · 0 评论 -
C++ Primer Plus 第五版 第六章 编程练习 7
.. = =#/* 第六章 编程练习 7 编写一个程序,它每次读取一个单词,直到用户只输入q.然后,该程序指出有多少个单词以元音打头,有多少个 单词以辅音打头,还有多少格单词不属于这类. 为此,方法之一是,使用isalpha()来区分以字母和其他字符打头的 单词,然后对于通过了isalpha()测试的单词,原创 2008-11-14 20:42:00 · 2443 阅读 · 0 评论 -
C++ Primer Plus 第五版 第七章复习题
C++ Primer Plus 第五版 第七章复习题 4 编写一个接受3个参数的函数,指向数组中第一个元素的指针,指向数组最后一个元素后面的一个指针 以及一个int值, 并将数组中所有元素设置为这个int值. #include using namespace std;voi原创 2008-11-18 03:41:00 · 2352 阅读 · 0 评论 -
C++ Primer Plus 第五版中文版 第六章 编程练习6
程序要求: 编写一段程序,记录捐助给"维护合法权利团体"的钱.该程序要求用户输入捐献者数目,然后要求用户输入每一个捐献者姓名和款项 . 这些信息被储存在一个动态分配的结构数组中.每个结构有两个成员.用来储存姓名的字符数组(或STRING对象)和用来储存款项的double成员.读取所有数据后.程序将显示所有捐款超过10000的捐款者姓及其捐款数额.该列表应包含一原创 2008-11-14 19:38:00 · 1993 阅读 · 1 评论 -
C++ Primer Plus 第五版 第七章 编程练习 5 6
//第七章编程练习6 #include using namespace std;const int Max=9;int Fill_Array(double *Arr,int Num);//填充数组 void Show_Array(double *Arr,int Num);void Reverse_Array(double arr[],原创 2008-11-18 19:15:00 · 1448 阅读 · 0 评论 -
C++ 提权函数
BOOL MyTokenPrivileges(int ProcessID){ HANDLE processHandle; HANDLE hdlTokenHandle; LUID tmpLuid; TOKEN_PRIVILEGES tkp; if (ProcessID==NULL) { processHandle=GetCurrentProcess(); }原创 2010-01-17 20:09:00 · 4397 阅读 · 0 评论 -
让我们的程序也可以自动申请uac权限 以VS2008为例子
在网上找到半天都没有找到好用一点的方法 只有自己动手研究研究了 在命令行的附加选项中加入下面的一行命令即可/MANIFESTUAC:"level=requireAdministrator uiAccess=false" 看图说话原创 2009-12-24 03:23:00 · 2850 阅读 · 0 评论 -
自己写的 格式化数字 函数 类似 10030 格式化为 10,030
void MyFormatStringA(char * buff,int inumber){ static char fuhao[2]=","; if (inumber/1000<=0)//无需格式化 { return; } wsprintfA(buff,"%03d",inumber%1000);//取尾部 输出3字节的长度 char weiba[4];//截取尾原创 2009-12-24 05:18:00 · 1501 阅读 · 1 评论 -
*XX++ 需要注意
<br />void WINAPI sss(PDWORD pdwArr,PDWORD dwNum)//; //{ for (DWORD i=0;i<*dwNum;i++) { printf("%d/t",pdwArr[i]); } printf("/r/n");}void WINAPI xxx(PDWORD pdwArr,PDWORD dwNum)//; //{ pdwArr[*dwNum]=123; (*dwNum)++;//必须+() 不然+的只是指针原创 2010-10-17 07:18:00 · 2046 阅读 · 0 评论 -
C数据搜索函数 仿照E的 寻找字节集
<br />int SearchByteShuZu(byte * bForSearch,int ifLen, byte* bWaitSearch, int iwLen,int iFirstSearchPos){//int SearchByteShuZu(byte * bForSearch,int ifLen, byte* bWaitSearch, int iwLen,int iFirstSearchPos);//寻找字节集数组(待寻找的,待寻找的最大长度,要寻找的,要寻找的长度,起始寻找位置) 返回-原创 2010-10-18 05:04:00 · 5224 阅读 · 2 评论 -
获取操作系统版本字符串(转自MSDN) 附判断操作系统的代码
<br />#include <cstdio>#include <Windows.h>#include <atlbase.h>#define BUFSIZE 256typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);typedef BOOL (WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD);#include <strsafe.h>BOOL GetOSDisplayString( LPT原创 2010-12-16 00:00:00 · 2947 阅读 · 0 评论 -
创建进程置新进程的父进程为指定进程 附 一个提权函数 一个进程名寻进程ID函数
#include #include #include #include BOOL EnablePrivilege( LPCTSTR name ){//提升进程权限 BOOL bRet=FALSE; //获得指定的权限值 TOKEN_PRIVILEGES priv = { 1, { 0, 0, SE_PRIVILEGE_ENABLED } }; BOOL bLookup = LookupPrivilegeValue( NULL, name,原创 2010-12-16 00:02:00 · 5255 阅读 · 0 评论 -
给GUI程序加入控制台窗口 方便调试
<br /> <br />下面代码是给程序加入控制台<br />可以使用console的一系列函数了<br />例如 printf(); 以及一些控制台颜色函数<br /> <br /> if (!AllocConsole()) { // MyDbgPrint("创建调试控制台失败"); } else { char szBuff[128]; wsprintfA(szBuff,"游戏调试输出窗口 进程ID:%d", GetCurrentPro原创 2010-12-16 00:22:00 · 3556 阅读 · 0 评论 -
转发屠夫大牛使用未公开API ZwQueryVirtualMemory 枚举进程模块的函数例子
<br />#include <windows.h>#include <cstdio>#include <winternl.h>#include <atlstr.h>typedef enum _MEMORY_INFORMATION_CLASS { MemoryBasicInformation, MemoryWorkingSetList, MemorySectionName}MEMORY_INFORMATION_CLASS;typedef原创 2010-12-15 23:59:00 · 7133 阅读 · 0 评论 -
vc 内的 UNICODE _UNICODE 区别
好吧 这个问题太菜了..但是我觉得还是有必要记录一下UNICODE 这是由windows定义的_UNICODE 这是由c/c++运行时库定义的原创 2010-12-17 16:23:00 · 2714 阅读 · 0 评论 -
C++11新特性之新类型与初始化
这是C++11新特性介绍的第一部分,比较简单易懂,但是也有一些有趣的地方。 不想看toy code的读者可以直接拉到文章最后看这部分的总结。新类型long long类型C++11标准中新加入了long long类型属性,占用空间不小于long类型。测试代码如下:long large = LONG_MAX;long long long_large = LLONG_MAX;long long lo转载 2016-07-19 11:01:15 · 1898 阅读 · 0 评论