
个人心得
请叫我大聪明~
勿在浮沙筑高台
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MFC视图分割
1.给CMainFrame添加虚函数OnCreateClient。2.重写虚函数BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){// 单文档视图一分为二if(!m_wndSplitter.CreateStatic(this, 1, 2)){TRACE0(原创 2013-05-11 13:30:50 · 835 阅读 · 0 评论 -
SI,DI
SI:(source index)是源变址寄存器DI:(destination index)目的变址寄存器它们只能用做16位寄存器,一般用来存放地址。在串处理指令中,SI用作隐含的源串地址,默认在DS中;DI用做隐含的目的串地址,默认在ES中。 分别达到在数据段和附加段中寻址的目的.原创 2013-05-24 07:37:44 · 765 阅读 · 0 评论 -
智能指针
// Student.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include class Student{public:Student(){cout }~Student(){cout }void SayHello原创 2013-05-09 11:54:59 · 556 阅读 · 0 评论 -
UDP简单通信
// 初始化环境代码#include#include#pragma comment(lib,"WS2_32")class CInitSock{public:CInitSock(BYTE minorVer=2,BYTE majorVer=2){WSADATA wsaData;WORD sockVersion=MAKEWORD(minorVer,majorVer原创 2013-04-26 09:27:48 · 573 阅读 · 0 评论 -
TCP&UDP的比较
一、TCP报头 TCP报文段的报头有10个必需的字段和1个可选字段。报头至少为20字节。报头后面的数据是可选项。 1、源端口号(16位) 标识发送报文的计算机端口或进程。一个TCP报文段必须包括源端口号,使目的主机知道应该向何处发送确认报文。 2、目的端口号(16位) 标识接收报文的目的主机的端口或进程。 3、序列号(32位)原创 2013-04-24 09:49:37 · 596 阅读 · 0 评论 -
模拟com组件error.
Creating library Debug/imitateCom2.lib and object Debug/imitateCom2.expimitateCom2.obj : error LNK2001: unresolved external symbol __imp__RegSetValueExA@24imitateCom2.obj : error LNK2001: unresolv原创 2013-04-12 22:28:46 · 658 阅读 · 0 评论 -
16字节转字符串
HRESULT GUID2String(GUID iid, char *szGuid, BOOL bUpper = TRUE){ const char *szFormat; if (!bUpper) { szFormat = "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}"; } else { sz原创 2013-04-11 16:32:44 · 1135 阅读 · 0 评论 -
知识扫盲
悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的。在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(Rules Object)。组件看起来像对象,但不符合对象的学术定转载 2013-04-10 20:20:18 · 633 阅读 · 0 评论 -
dll动态链接库使用过程
// 1.加载动态链接库 g_hDll = ::LoadLibrary("piano_dll.dll"); if(g_hDll){ // 2.得到各函数的地址 g_pCreateFun = (TYPEFUNCREATE)::GetProcAddress(g_hDll, "fun_Create"); g_pPlayFun =原创 2013-04-10 09:46:49 · 651 阅读 · 0 评论 -
十进制输出AX中的内容
;十进制方式显示AX中的值MyCode segmentresult db '0', '0', '0', '0', '0', '$'divisors dw 10000, 1000, 100, 10, 1MAIN:mov ax, MyCodemov ds, axmov es, axmov di, offset resultmov si, offset divis原创 2013-05-25 16:30:30 · 1478 阅读 · 0 评论 -
VC编译生成asm文件设置
在VC6.0中如下操作可生成扩展名为COD的文件即为ASM文件Project->Settings...->打开“Project Settings”对话框->选择C/C++页“Category”中选择“Listing Files”在“Listing file type”中选择“Assembly,Machine Code,and Source”“OK”后重新编译clean原创 2013-05-26 10:10:05 · 2743 阅读 · 0 评论 -
GetErrorCString GetErrorInfo(DWORD dwError) { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_AL
GetError(DWORD dwError){ LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwError, MAKELANGI原创 2013-04-10 10:20:13 · 787 阅读 · 0 评论 -
备份远程数据库Code
ErrorInfo CfinishschoolSApp::BakDB2(CString dbsource, CString uname, CString pwd, CString bakname, CString bakpath){ ErrorInfo error; try{ _bstr_t bstrConn; CString strMdbConn; strMdbConn.Fo原创 2016-11-22 09:16:09 · 578 阅读 · 0 评论 -
facebook post注册。封号。研究
最近在做facebook注册机。流程做完了,一注册就出身份证验证。仔细比对数据包发现,cookie不对。这个问题解决后,然后又遇到问题,就是身份验证,而且出的很频繁。虽然说,流程上没有问题,但是若在其他几个看起来不那么重要的post做些手脚,一点办法都没有。有空研究一下吧。原创 2016-06-06 13:20:00 · 1774 阅读 · 0 评论 -
JavaScript调试
文章转载自http://www.open-open.com/lib/view/open1384785324165.html你是怎么调试 JavaScript 程序的?最原始的方法是用 alert() 在页面上打印内容,稍微改进一点的方法是用 console.log() 在 JavaScript 控制台上输出内容。嗯~,用这两种土办法确实解决了很多小型 JavaScript 脚本的调试问题。不过转载 2015-02-17 23:33:35 · 459 阅读 · 0 评论 -
CString 截取部分字符串的几种方法
m_csFileName = csStr.Right(csStr.GetLength()-csStr.ReverseFind('\\')-1);文件xxxx.dll去掉后面的.dll方法1、char str[] = "xxxx.dll"char*p;p=strrchr(str, '.');*p = 0;方法2、CString str="xxxx.dll";int转载 2013-04-04 11:10:42 · 15481 阅读 · 0 评论 -
输出换行
MyRecord struct name db 16 dup ('$')phone db 16 dup ('$')MyRecord ends;data segmentTheRecord MyRecord string db 16 dup('$')TipMsg db 'Please input your name:$'TipMsg2 db 'Please inpu原创 2013-05-25 12:39:38 · 1406 阅读 · 0 评论 -
vc中加花
__asm jz Do_It__asm jnz Do_It__asm __emit 0e8hDo_It:原创 2013-05-25 23:20:01 · 967 阅读 · 0 评论 -
DEBUG 标志位
中为英文全拼或简拼(~为简化部分),单词中的大写部分为简写所取字符。标志名 标志为1时 标志为0时OF[Overflow Flag] ov[OVerflow] nv[Not oVerflow]DF[Direction Flag] dn[DowN] up[UP]IF[Interrupt Flag] ei[Enable I~t] di[Disable I~t]SF[Sign Fla转载 2013-05-25 10:39:07 · 801 阅读 · 0 评论 -
unsigned 与signed
#include #include int main(){int x = 2; char * str = "abcd"; int y = (x - strlen(str) ) / 2;printf("%d\n",y);}结果应该是 -1 但是却得到:2147483647 。为什么?因为strlen的返回值,类型是size_t,也就是un原创 2013-05-25 21:15:04 · 577 阅读 · 0 评论 -
字符串分割 AfxExtractSubString
BOOL AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = '\n')参数说明:rString 保存输出的子字符串lpszFullString 待分割的字符串iSubString 提取的子字符串的序号,从0开始。假如你想提取第3段,该参数就输入转载 2013-04-06 22:49:22 · 588 阅读 · 0 评论 -
com学习
com就是组件。非开发人员组件。后期制作。问题1.组件是如何加载的?时机:主框架创建的时候,即int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)这个函数里面加载。组件的加载、也就是dll的加载。加载的功能写成函数。另外,菜单加载之后,是灰化的菜单,如何使他可以不显示灰色呢。 使用下面这段代码://自动菜单项不灰色原创 2013-04-09 18:14:39 · 818 阅读 · 0 评论 -
断言错误。
在开个线程时常为所开的线程传入个窗口参数 (cwnd),,,这里里面有个很大的隐患就是当做CWnd::AssertValid()检查,就会遇到断言失败。具体原因在于MFC管理窗口的机制。MFC有个窗口句柄和窗口类对象的映射表,就是Windows对象(句柄)和C++对象的一个映射,它是在窗口调用CWnd::Create(),CWnd::CreateEx()时,就添加到映射表里的。映射表的一个重要转载 2013-04-06 00:04:45 · 2285 阅读 · 0 评论 -
键盘记录code
#pragma data_seg("DATA")HHOOK g_hook = NULL;#pragma data_seg()#pragma comment(linker, "SECTION:MYDATA,RWS")HINSTANCE g_hIns = NULL;BOOL APIENTRY DllMain( HANDLE hModule, D原创 2013-04-04 19:00:49 · 714 阅读 · 0 评论 -
获取CEdit内容的7种方法
1. int num1,num2,num3;char ch1[10],ch2[10],ch3[10];GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);num1=atoi(ch1);num2=atoi(ch2);num3=num1+num2;转载 2013-04-03 22:42:27 · 2961 阅读 · 0 评论 -
远程CMD基础
远程CMD的过程,就是服务器发送命令,客户端执行,客户端把命令交给CMD执行, CMD把执行之后的返回数据交给客户端,客户端返回。其中,CMD与客户端的交互,需要用到管道。此处有例子一个。贴在这里。// cmdTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#incl转载 2013-04-03 20:44:30 · 1234 阅读 · 0 评论 -
CEditView处理回车键
找了几篇相关文章,方法是重写虚函数PreTranslateMessage,BOOL CMyEditView::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if (WM_KEYFIRST message &&原创 2013-04-03 23:08:57 · 869 阅读 · 0 评论 -
VC中TabCtrl用法
在Delphi中TabCtrl的使用是比较方面的,但在VC中并不是怎么的好用;VC中的CtabCtrl类只提供了一些基本的控制与消息,而TabCtrl上的页面呈现还需我们用对话框来处理。下面我们就以例子的形式来讲述VC中CtabCtrl的相关用法,希望对你有一定的帮助。在VC中使用CtabCtrl主要经历如下步骤:1、建立一个基于对话框的应用程序 2、画CTabCtrl控件,类转载 2013-04-05 10:07:53 · 714 阅读 · 0 评论 -
远程截图卡死的解决办法
今天做远程屏幕截图,服务器端点了按钮之后卡死了。想了好久,是因为没有开启线程,故一直等待返回。修改之后的代码是:UINT AFX_CDECL GetDeskTopProc(LPVOID lpParam){CMyListView* lpView = (CMyListView*)lpParam;lpView->m_start = 1;while(lpView->m_start){CMyPacket t原创 2013-04-03 17:13:16 · 1518 阅读 · 0 评论 -
CListCtrl左键(右键)命中某一项
m_ClientList.ScreenToClient(&point); LVHITTESTINFO lvinfo; lvinfo.pt = point; lvinfo.flags = LVHT_ABOVE; int nItem = m_ClientList.SubItemHitTest(&lvinfo); if(nItem原创 2013-04-03 09:55:04 · 608 阅读 · 0 评论 -
MFC框架类、文档类、视图类相互访问的方法
1、获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针 CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针 CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd); 或者 CMainFrame* pMainFrame = (CM转载 2013-04-02 21:15:23 · 530 阅读 · 0 评论 -
视图分割
视图分割代码:首先重写虚函数OnCreateClient,重写其内容:BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){ // TODO: Add your specialized code here and/or call the base class原创 2013-04-02 18:04:11 · 827 阅读 · 0 评论 -
Windows Sockets错误码扩展描述
下面给出WSAGetLastError()函数返回的可能错误码按字母顺序排列的列表,同时给出简要的扩展描述。WSAEACCES (10013) Permission denied. 试图使用被禁止的访问权限去访问套接字。例如,在没有使用函数setsockopt()的SO_BROADCAST命令设置广播权限的套接字原创 2013-04-02 09:24:57 · 812 阅读 · 0 评论 -
CImageList创建报错。找了半天原因、、、
本来是写在void CRegeditTreeView::OnInitialUpdate() 里面的。但情况是,就因为写在这里所以错了。要写在OnCreate里面这是个深刻的教训、要多看书啊。犯了这么基础性的错、BOOL CRegeditTreeView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, con原创 2013-04-06 17:46:57 · 761 阅读 · 0 评论 -
遍历注册表下所有子键
// QueryKey - Enumerates the subkeys of key and its associated values.// hKey - Key whose subkeys and values are to be enumerated. #include #include #include #define MAX_KEY_LENGTH 255#de转载 2013-04-06 21:41:46 · 1097 阅读 · 0 评论 -
各种字符串之间的转换
将字符转换为整数,可以使用atoi、_atoi64或atol。CString 头文件#include string 头文件#include CString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());转载 2013-04-08 18:15:12 · 529 阅读 · 0 评论 -
详解c/c++函数声明
要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。 我们先来看看下面的一个语句:( *( void(*)())0)(); 这是当计算机启动时,硬件将调用首地址为0位置的子例程。像这样的表达式恐怕会令每个C/C++程序员的内心都“不寒而栗”吧。 然而,完全不用害怕,任何C变量的声明都转载 2013-04-08 18:13:19 · 748 阅读 · 0 评论 -
有趣的问题
用宏实现模板功能,分别输出 void main() { ADD(int)(1,2); ADD(float)(1.0f,2.2f); ADD(int)(10,20); ADD(char*)("hello","wolrd"); }/////////////////////////////////////////////////////////////////原创 2013-04-08 18:11:08 · 480 阅读 · 0 评论 -
未分类
//根据窗口句柄画窗口边框void CMyMfcSpyDlg::DrawWindowFram(HWND hWnd){ if (hWnd == NULL) { return; } //获取窗口宽度高度 RECT rt; ::GetWindowRect(hWnd, &rt); //获取桌面DC原创 2013-04-08 18:04:28 · 1146 阅读 · 0 评论 -
线程操作
得到当前线程句柄: GetCurrentThread(void)得到当前线程ID: GetCurrentThreadId(void)根据句柄得到线程ID: GetThreadId根据窗口句柄得到此窗口所在线程的ID(同时得到进程的ID): GetWindowThreadProcessId根据ID得到线程句柄: OpenThread(unsigned long)挂起用Susp原创 2013-04-08 18:02:56 · 507 阅读 · 0 评论