- 博客(10)
- 资源 (28)
- 收藏
- 关注
原创 函数调用约定
<br />1、__stdcall调用约定相当于16位动态库中经常使用的PASCAL调用约定。在32位的VC++5.0中PASCAL调用约定不再被支持(实际上它已被定义为__stdcall。除了__pascal外,__fortran和__syscall也不被支持),取而代之的是__stdcall调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。 <br /> _stdcall是Pa
2011-02-23 19:22:00
357
转载 vc中socket编程步骤
<br />sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。<br /><br />服务器端编程的步骤:<br /><br />1:加载套接字库,创建套接字(WSAStartup()/socket());<br /><br />2:绑定套接字到一个IP地址和一个端口上(bind());
2011-02-23 09:19:00
454
转载 GetMessage与Peekmessage区别
<br />a。GetMessage类似于SendMessage. 有消息才会传回, 否则是阻塞的...,同时取出(删除)原队列的消息. <br />b。 PeekMessage 类似于PostMessage ,没有消息也立即返回, 同时有选项选择是否删除原消息...<br /> <br />1. GetMessage()只有在接收到消息后才将控制权转给你的程序,而PeekMessage()无论有没有消息都会将控制权转给你的程序:如果有消息,返回真,没有消息返回假。 <br />2。GetMessage
2011-02-23 09:13:00
489
原创 资源导出为文件
<br />资源类型为OWNER_DATA<br />BOOL CXXXApp::MakeResource(int nID, CString szPathName) { HRSRC hSrc = FindResource(NULL, MAKEINTRESOURCE(nID), _T("OWNER_DATA")); if(hSrc == NULL) return FALSE; HGLOBAL hGlobal = LoadResource(NULL, hSrc); if(hG
2011-02-16 08:59:00
509
原创 让你的程序在xp系统模式下运行(适用于更高级Windows系统版本)
<br />添加自定义资源RT_MAINFEST,插入名为XPStyle.manifest的资源,并改资源名为1.<br /> <br /> <br />XPStyle.manifest的内容为<br /><?xml version="1.0" encoding="UTF-8" standalone="yes"?> <br /><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <br /><assemblyId
2011-02-14 14:43:00
561
转载 引用dll导致的资源id冲突解决方法
<br />产生这个问题的根源在于应用程序与MFC规则DLL共享MFC DLL(或MFC扩展DLL)的程序总是默认使用EXE的资源,我们必须进行资源模块句柄的切换,其实现方法有三:<br /> 方法一 在DLL接口函数中使用:<br />AFX_MANAGE_STATE(AfxGetStaticModuleState());<br /> 我们将DLL中的接口函数ShowDlg改为:<br />void ShowDlg(void)<br />{ <br />//方法1:在函数开始处变更,在函数结束时恢复<
2011-01-10 17:46:00
3807
转载 内联汇编访问类或结构的private 成员变量
<br />为了封装性,方便类的维护,但在有些时候某些变量如果不提供Get或Set成员函数,而<br />我们又想直接通过变量名(这是前提)来访问变量,而不需要通知接口维护者来更改接口.<br />这时,VC的内联汇编就可以帮我们了.<br />假设有类定义如下:<br />class CTestStack <br />{<br />public:<br />CTestStack();<br />virtual ~CTestStack();<br />void MemberUsed();<br />priv
2011-01-06 15:20:00
1123
原创 ::GetCommandLine()获取的值与CWinApp::m_lpCmdLine不同之处
<br />调试了几天程序,原来从子进程中CWinApp::m_lpCmdLine是无法获取主进程通过CreateProcess传给子进程的命令行参数(一直为空),但通过ShellExcute传进的命令行参数则可以获取到.<br /> <br />总结: 主进程中函数CreateProcess和ShellExcute传给子进程的命令行参数,在子进程中均可以::GetCommandLine()获取,但CWinApp::m_lpCmdLine仅可以获取ShellExcute传命令行参数.
2011-01-06 10:24:00
4894
原创 判断是否点击在listctrl的checkbox
<br />void CXXXDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)<br />{<br /> <br /> DWORD dwPos = GetMessagePos();<br /> CPoint point( LOWORD(dwPos), HIWORD(dwPos) );<br /> <br /> m_list.ScreenToClient(&point);<br /> <b
2010-12-07 18:09:00
696
转载 [转]修改菜单(系统菜单)
1、用CWnd::GetSystemMenu()获取系统菜单的CMenu指针 CMenu *pSysMenu=NULL; pSysMenu=AfxGetMainWnd()->GetSystemMenu(FALSE); pSysMenu->RemoveMenu(SC_CLOSE,MF_BYCOMMAND);//删除关闭菜单 pSysMenu->AppendMenu(MF_STRING,ID_MENU_TEMP,"&Close");//增加菜单2、用WM_SYSCOMMAND消息处理函数响应自己增加的菜单voi
2010-12-06 13:24:00
922
数字图像处理(第六版,John C.Russ)
2018-05-03
800-900MHz 频段射频识别(RFID)技术应用试行规定
2009-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人