- 博客(17)
- 资源 (9)
- 收藏
- 关注
原创 MFC动态创建控件
<br /> <br />void CTestDlg::OnOK() <br />{<br /> // TODO: Add extra validation here<br /> <br /> CEdit* edit;<br /> edit = new CEdit;<br /> edit->Create( ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,<br /> CRect(10,10,120,30), this, 1);<br
2010-08-19 11:51:00 1005
原创 CIPAddressCtrl类的使用(IP地址与CString的互相转化)
<br />//将CString 型IP地址在IPAddressCtrl中显示 <br />CString strIP="192.168.0.10"; <br />DWORD dwIP; <br />dwIP = inet_addr(strIP); <br />unsigned char *pIP = (unsigned char*)&dwIP; <br />m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2),
2010-08-18 17:24:00 1194
原创 VC++ ipaddress控件的使用
<br />void CMyDlg::OnIPAddress() <br />{<br />// 此段代码:独立的获取本机IP地址和计算机名<br />WORD wVersionRequested; <br />WSADATA wsaData; <br />char name[255]; <br />CString ip; <br />PHOSTENT hostinfo; <br />wVersionRequested = MAKEWORD(2, 0); <br /> <br />if (WSASta
2010-08-18 17:15:00 2799
原创 mfc对话框隐藏
有很多应用程序要求一起动就隐藏起来,这些程序多作为后台程序运行,希望不影响其他窗口,往往只在托盘区显示一个图标。这些程序通常都是对话框程序,而对话框在初始化的过程上与SDI、MDI的初始化是不同的,对话框只需要DoModule或者是CreateDialog等等对话框函数调用一次便可,SDI、MDI则要好几步才行。这样看来,对话框在使用方法上面是隐藏了不少细节的,其中就没有SDI、MDI所要求的ShowWindow(nCmdShow)这一步。因此对话框要想一运行就隐藏,并不是很直接的。有一些方法可以做到这一点
2010-08-18 17:12:00 2405
原创 VC控制台输出时设置字体及背景颜色
<br />1.改变整个控制台的颜色<br />用 system("color 0A"); <br />其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下: <br />0=黑色 <br />1=蓝色 <br />2=绿色 <br />3=湖蓝色 <br />4=红色 <br />5=紫色 <br />6=黄色 <br />7=白色 <br />8=灰色 <br />9=淡蓝色 <br />A=淡绿色 <br />B=淡浅绿色 <br />C=淡红色 <br />D=淡紫色 <br />E=
2010-08-18 17:09:00 3423
原创 WinMain中的Console与main中的Window
1.如何在WinMain中创建一个Console。调用AllocConsole分配一个Console资源;调用GetStdHandle获得OS的标准设备(输入,输出或错误),此函数返回一个句柄,若要使用标准C库函数,则需要根据获得的句柄转化为文件描述符;将此描述符与输出绑定就可以将它视为stdout/stdin/stderr了。#include <windows.h>#include <stdio.h>#include <io.h>#include <fcntl.h>int__stdcall WinMain
2010-08-18 17:02:00 1206
原创 MFC使用CCommandLineInfo处理命令行
<br />目标<br />让应用程序处理这里所见的命令行标志。<br />>XXX.exe /c /d<br />策略<br />一个MFC应用程序可以用CCommandLineInfo类的成员函数ParseParam()处理一些标准标<br />志。要添加我们自己的标志,而仍然能够支持另外一些标志,我们将从CCommandLineInfo派<br />生类,然后重载ParseParam()。<br />步骤<br />1.创建一个新的CCommandLineInfo类<br />1)用ClassWiza
2010-08-18 16:59:00 1830
原创 MFC命令行及CCommandLineInfo类
<br />获取命令行的方法:<br />1、GetCommandLine() 获取输入的所有信息,包括程序所在路径及参数<br />2、AfxGetApp()->m_lpCmdLine 只包含参数<br />一般情况下,获取到命令行后就可以针对命令行中的内容进行相应的处理了<br /> <br />CObject <br />└CCommandLineInfo <br />类CCommandLineInfo用于分析启动应用时的命令行参数。<br />MFC应用一般都会在它的应用对象中使用函数InitIns
2010-08-18 16:57:00 938
原创 MFC 获取命令行参数
<br />在MFC程序中,可以用以下几种方法来获取命令行参数。<br />为方便说明,我们假设执行了命令:C:/test/app.exe -1 -2<br /><br />方法一<br />::GetCommandLine();<br />将获取到 "C:/test/app.exe" -1 -2 <br /> <br /> <br />方法二<br />for (int i=0;i<__argc;i++)<br />{<br />__argv[i];<br />将依次得到C:/test/app.exe
2010-08-18 16:54:00 814
原创 ntdll.dll和ntoskrnl.exe中的NT*和ZW*函数区别
<br />以NtOpenProcess和ZwOpenProcess为例,结合Windbg的lkd调试来说明<br />1、Q:ntdll.dll中的Nt*和Zw*区别?<br />lkd> u ntdll!zwopenprocess l4<br />ntdll!ZwOpenProcess:<br />7c92d5fe b87a000000 mov eax,7Ah //函数服务号<br />7c92d603 ba0003fe7f mov edx,of
2010-08-11 20:20:00 2864
原创 Zw*与Nt*的区别
<br />某些Zw*和Nt*函数既在ntdll.dll中导出又在ntoskrnl.exe中导出,他们有什么区别呢?<br />我们分三部分比较:<br />step 1: ntdll.dll中的Zw*和Nt*有什么区别?<br />step 2: ntoskrnl.exe中的Zw*和Nt*有什么区别?<br />step 3: ntdll.dll中的Zw*与ntoskrnl.exe中的Zw*有什么区别? <br /> ntdll.dll中的Nt*与ntoskrnl.exe中的Nt*有什么区别
2010-08-11 19:20:00 1486
转载 字符数据类型转换代码
《字符数据类型转换代码(全部调试通过)》作者:Coderui 书于:2007-6-12------------------------------------------------------------------------<br />int nSize;<br />char* bufw;<br />CString str = "Coderui";nSize = str.GetLeng
2010-08-11 19:13:00 880
转载 十六进制读文件
<br />charch;<br />FILE*fp;<br />CStringstrTemp,strRead;<br /><br />if ((fp=fopen("c://1.exe","rb")) ==NULL)<br />{<br /> return;<br />}<br /><br />while (!feof(fp))<br />{<br /> ch=fgetc(fp);<br /> strTemp.Format("%02X ",(unsignedchar)ch);<br /> s
2010-08-11 19:02:00 820
原创 栈溢出的经典代码
<br />一个栈溢出的经典代码<br /> <br />#include <stdio.h><br />#include <string.h><br />void overflow(char* buf)<br />{<br /> char des[5]="";<br /> strcpy(des,buf);<br /> return;<br />}<br />void main()<br />{<br /> char longbuf[100]="aaaaaabbbbbccccc";<br /> overfl
2010-08-04 16:26:00 1908
原创 函数在内存中的具体执行
如果程序要调用某个函数,那么计算机就会自动将函数返回后要执行的指令地址先压入栈里,等待函数返回以后再从中取出,跳到该处继续执行。 #include void TestFunction(){ int i = 10; return;}void main(){ TestFunction(); return;} EAX = CCCCCCCC EBX = 7FFD5000 ECX = 00000000 EDX = 00591030 ESI = 00000000 EDI = 0012FF48 EIP = 0040D46
2010-08-04 15:24:00 1426
原创 内存中栈的具体表现
<br />栈在内存中到底是如何表现的呢?我们来做一个实例调试一下。<br /> <br />代码如下:<br /> <br />#include <stdio.h><br />void main()<br />{<br /> _asm<br /> {<br /> push 0x12345678<br /> push 0x11112222 <br /> pop eax<br /> pop ebx<br /> }<br />}<br /> <br />按F9下一个断点,然后按F5进行调试。反汇编窗口如
2010-08-04 14:24:00 1158
Apktool signapk.jar 可签名
2015-06-29
MFC Unicode库文件
2012-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人