
c++
文章平均质量分 53
ssihc0
技术爱好狂人.看,技术不是很NB
展开
-
vc++2008 绘制透明位图
/*函数名:绘制透明位图*/void Cs1Dlg::drawTransparent(CBitmap & bmp, int x, int y, int cx, int cy, int srcx, int srcy, CDC * pDC, COLORREF TransparentColor){ //定义源,掩码,透明绘制环境 CDC SrcDC,MaskDC,Trans原创 2009-11-13 15:06:00 · 2076 阅读 · 2 评论 -
VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)
<br />1、首先,为了下面使用擦除背景的方便,先增加OnEraseBkgnd函数(WM_ERASEBKGND ),但好多新手都不知道对话框在那里找增加这个函数,来跟我来<br />快捷键Ctrl+W打开ClassWizard对话框(菜单->view->ClassWizard):选择Class Info,找到左下角的Message filter,下拉列表至最底部,选中Window,OK保存<br /><br />2、我们再Ctrl+W 打开ClassWizard对话框,MessageMaps->Class转载 2010-06-07 01:08:00 · 1182 阅读 · 0 评论 -
VC中通过域名获取IP
<br />struct hostent *remoteHost; HOSTENT *host_entry;char host_name[256] ="www.google.cn"; host_entry=gethostbyname(host_name); if(host_entry!=0) { sprintf(buf,"%d.%d.%d.%d", (host_entry->h_addr_list[0][0]&0x00ff),原创 2010-05-31 22:26:00 · 2291 阅读 · 0 评论 -
CSstring 按格符分成数组
// 给你写段代码: CString str="aa,bb,cc,dd,ee"; CString strTemp; int nIndex=0, nLast=0; while (nIndex != -1) { nIndex = str.Find(",", nLast);原创 2010-05-17 11:23:00 · 713 阅读 · 0 评论 -
创建远程线程注入DLL
偶尔在 http://bbs.77169.com/read-htm-tid-240420.html 上看到此文,甚好,现分享如下。 大家都知道,在 Win32 中每个进程都拥有一个独立的 40 亿字节的内存空间,也就是 4 GB ,这个 4 GB 的内存空间相对于进程来说是独立的,也就是说,你不能在你的进程空间内直接操作别的进程的空间,因为内存相对于进程来说独立的,这样做的好处其实很原创 2010-03-28 00:59:00 · 953 阅读 · 0 评论 -
vc++获取本机IP地址
#include "stdafx.h"#include "InitSock.h"int _tmain(int argc, _TCHAR* argv[]){ CInitSock initSock1; initSock1.new1 (true); char szHost[256]; //取得本地主机名称 ::gethostname(szHost,256); ho原创 2010-01-14 10:02:00 · 3387 阅读 · 1 评论 -
VC多线程编程之一
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000);转载 2010-01-08 16:15:00 · 554 阅读 · 0 评论 -
使用openssl 正确的加载公钥私钥,并建立ssl通信(客户端)
stdafx.h 文件 #pragma once#include "targetver.h"#include #include #include #include #include #include #include #include #include #include #include #define CHK_N原创 2010-01-04 20:42:00 · 6303 阅读 · 0 评论 -
vc++ 中将gb3212的字符串转成utf-8编码
函数代码如下: void Convert(const char* strIn,char* strOut, int sourceCodepage, int targetCodepage){ int len=lstrlen(strIn); int unicodeLen=MultiByteToWideChar(sourceCodepage,0,strIn,-1,NU原创 2010-01-06 16:12:00 · 1779 阅读 · 0 评论 -
animatewindow 的使用
<br />直接在vc++里用animatewindow总是要出错,,网上查了一下,,,,说<br />#undef WINVER<br />#define WINVER 0X500<br />一下就可以了,,,,但我还是不行,,<br /> <br />没办法,,,最后,,用动态调用dll了解了这个问题代码如下<br /> <br />typedef UINT (CALLBACK* LPFUN)(HWND hwnd, DWORD dwTime,DWORD dwFlags); LPFUN pp;原创 2010-06-07 01:29:00 · 618 阅读 · 0 评论 -
通过HWND 获得CWnd指针
<br /> HWND hWnd=GetSafeHwnd(); CWnd* pWnd=CWnd::FromHandle (hWnd); CString strText=_T(""); strText.Format ("pWnd=0x%X/nthis=0x%X/n",pWnd,this); AfxMessageBox(strText);原创 2010-06-06 22:53:00 · 1441 阅读 · 0 评论 -
穿透代理服务器编程
作者 allfresh 文章原始出处 www.allfresh.net/program/proxy.htm 正文 在网络程序设计过程中,我们经常要与各种类型的代理服务器打交道,比如在企业内部网通过代理去访问Internet网上的服务器等等,一般代理服务器支持几种常见的代理协议标准,如Socks4,Socks5,Http代理,其中Socks5需要用户验证,代理相对复杂。我在查阅RFC文档和相关资料后原创 2008-10-10 21:06:00 · 681 阅读 · 0 评论 -
地址回调
<br />#include <stdio.h><br />#include <windows.h><br />void DelegateSample(void (*fp)(int,int),int data)<br />{<br /> printf("DelegateSample function #/n");<br /> fp(data/10,data/200);<br />}<br />void Callback(int result1,int result2)<br />{<br /> printf原创 2011-02-02 14:47:00 · 843 阅读 · 0 评论 -
纤程的使用
<br />#include <stdio.h><br />#include <windows.h><br />LPVOID fProducer , fConsumer , fMain;<br />int RawMaterial ;<br />int Queue ;<br />int MaxQueue ;<br />VOID CALLBACK FiberProc_Producer( PVOID lpParameter ){<br /> while ( RawMaterial > 0 ){<br />原创 2011-02-02 13:42:00 · 873 阅读 · 0 评论 -
VC++ 取MAC
<br />#include <stdio.h> #include <stdlib.h> #include <httpext.h> #include <windef.h> #include <Nb30.h> #pragma comment(lib,"netapi32.lib") int getMAC(char * mac) { NCB ncb; typedef struct _ASTAT_原创 2010-06-21 20:49:00 · 864 阅读 · 0 评论 -
图片窗口
<br />BOOL CCDemoDlgDlg::OnInitDialog(){ CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000原创 2010-06-07 01:07:00 · 800 阅读 · 0 评论 -
vc++中最大化,,最小化,,的实现
<br />用SendMessage来实现<br /> <br /> <br />如下void CGetcwndDlg::OnButton3() { // TODO: Add your control notification handler code here SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);}void CGetcwndDlg::OnButton4() { // TODO: Add your control notifica原创 2010-06-06 23:32:00 · 885 阅读 · 0 评论 -
为手工添加MFC PreTranslateMessage 重载
<br />在头文件中加<br /> <br /> public:<br /> virtual BOOL PreTranslateMessage(MSG* pMsg);<br /> <br /> <br />然后在cpp 文件中重写<br /> <br /> <br />BOOL CGetcwndDlg::PreTranslateMessage(MSG* pMsg) <br />{<br /> // TODO: Add your specialized code here and/or call the b原创 2010-06-06 23:31:00 · 5407 阅读 · 0 评论 -
vc++ 取应用程序主窗口的指针
<br /> CGetcwndDlg* pApp=(CGetcwndDlg *) AfxGetApp(); CWnd * pMainWnd=(CWnd *)pApp->m_hWnd; CString strText=_T(""); strText.Format("pMainWnd=0x%X/nthis=0x%X/n",pMainWnd,this); AfxMessageBox(strText);原创 2010-06-06 23:03:00 · 779 阅读 · 0 评论 -
[C语言]fopen()函数的参数说明
格式:文件指针名=fopen(文件名,使用文件方式)参数:文件名 意义"C:/temp/temp.txt" 文件 C:/temp/temp.txt 文件使用方式 意 义“rt” 只读打开一个文本文件,只允许读数据“wt” 只写打开或建立一个文本文件,只允许写数据“at” 追加打开一个文本文件,并在文件末尾写数据转载 2009-12-29 20:09:00 · 1834 阅读 · 0 评论 -
给出常用的C变量的定义方式
a) 一个整型数(An integer) b) 一个指向整型数的指针(A pointer to an integer) c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) d) 一个有10个整型数的数组(An array of 10 integers) e) 一个有10个指针的数组,该指针是指转载 2009-12-11 19:15:00 · 711 阅读 · 0 评论 -
手把手教你玩转SOCKET模型之重叠I/O篇(上)
目录:1. 重叠模型的优点2. 重叠模型的基本原理3. 关于重叠模型的基础知识4. 重叠模型的实现步骤5. 多客户端情况的注意事项 一. 重叠模型的优点1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。2. 比起阻塞、select、WSAAsyncSelect以及WS转载 2010-01-24 21:12:00 · 1618 阅读 · 0 评论 -
atoi 把字符串转换成整型数
atoi 把字符串转换成整型数int atoi (char s[]){int i,n,sign;for(i=0;isspace(s[i]);i++)//跳过空白符 ;sign=(s[i]==-)?-1:1;if(s[i]==+||s[i]== -)//跳过符号 i++;for(n=0;isdigit(s[i]);i+原创 2010-01-19 21:13:00 · 1561 阅读 · 0 评论 -
C++字符串格式化文章
选自《优快云 社区电子杂志——C/C++杂志》在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffe转载 2010-01-14 11:30:00 · 12099 阅读 · 0 评论 -
vc++标准的样本数据copy
#include #includevoid _t main(void){TCHAR SampleData [10]={1,2,3,4,5,6,7,8,9,0};TCHAR *pPointer=SampleData+6;BYTE Data[64]={0,};CopyMemory(Data,pPointer,2*sizeof(TCHAR));}原创 2010-01-13 21:30:00 · 758 阅读 · 1 评论 -
windows 函数和ANSI标准函数的比较及说明
Windows函数 ANSI标准函数 说明 BOOL bool TRUE/FALSE变量 BYTE原创 2010-01-13 20:40:00 · 800 阅读 · 0 评论 -
vc读取文本到数组
1.CStdioFile file;file.Open("tywxz.txt",CFile::modeRead); int sizei=0;CString *postdata; postdata=new CString[100]; while(file.ReadString(postdata[sizei++])) {}MessageBox(postdata[2]); } 2.C原创 2010-01-12 19:53:00 · 747 阅读 · 0 评论 -
vc++ 初始sockaddr_in 结构
sockaddr_in sockAddr; //设置地址家族 sockAddr.in_samily=AF_INET; //转化端口号6789到网络字节顺序,并安排它到正确的员 sockAddr.sin_port=htons(6789); //inet_addr 函数转化一个"aa.bb.cc.dd"类型的IP地址字符串到长整型 //它是以网络字节顺序记录的IP地址 s原创 2010-01-13 22:26:00 · 1928 阅读 · 0 评论 -
vc++2008 屏幕抓取
// 拷贝屏幕HBITMAP Cs1Dlg::CopyScreenToBitmap(int & nWidth, int & nHeight){ HDC hScrDC,hMemDC; HBITMAP hBitmap,hOldBitmap; int xScrn,yScrn; hScrDC=CreateDC(_T("display"),NULL,NULL,NULL); hM原创 2009-11-13 15:53:00 · 979 阅读 · 0 评论 -
vc++ windows socket I/O模型 WSAeventSelect 模型例子
// WSAEventSelect.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "IniSock.h"CIniSock inisock;int _tmain(int argc, _TCHAR* argv[]){ //事件句柄和sock 句柄表 WSAEVENT eventArray[WSA_MAXIMU原创 2010-01-24 22:24:00 · 1961 阅读 · 2 评论 -
有关数据类型转换的总结
int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2;一、其它数据类型转换为字符串短整型(int)itoa(i,temp,10);///将i转换为字符串放入原创 2010-01-26 21:23:00 · 1373 阅读 · 0 评论 -
VC++学习笔记对对话框窗体大小的修改
SetWindowPos 详解函数名: SetWindowPos 头文件: winuser.h 函数原型: BOOL SetWindowPos ( HWND hWnd, //窗口句柄 HWND hWndInsertAfter, //排列顺序的句柄 int X, //水平坐标 int Y, //垂直坐标 int cx, //宽 int cy原创 2010-01-29 22:27:00 · 4605 阅读 · 0 评论 -
vc++学习日记1.29 DoDataExchange的做用
DoDataExchange只有一个参数,即一个CDataExchange对象的指针pDX。在该函数中调用了DDX函数来完成数据交换,调用DDV函数来进行数据有效检查。 当程序需要交换数据时,不要直接调用DoDataExchange函数,而应该调用CWnd::UpdateData。UpdataData函数内部调用了DoDataExchange。该函数只有一个布尔型参数原创 2010-01-29 19:27:00 · 819 阅读 · 0 评论 -
vc++学习日记 与对话框控件交互的七种方法
实现a+b=c 功能 在对话框中放 三个edit 和一个button 第一种: 利用GetWindowsText 和SetWindowsText 代码如下 void Ctextdlg::OnOK() { // TODO: Add extra validation here int n1,n2,n3; CString str; GetDlgIt原创 2010-01-29 20:28:00 · 1100 阅读 · 0 评论 -
vc++菜单操作日记
菜单的基本操作 访问菜单 GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION|MF_CHECKED); GetMenu 取得菜单栏 返回 CWnd 类成员GetSubMenu 取子菜单 返回 CMenu类成员CheckMenuI原创 2010-01-28 17:12:00 · 663 阅读 · 0 评论 -
Windows Socket 网络编程(三) —— Windows Sockets程序设计
3.1 Windows Sockets简介3.1.1 什么是Windows Sockets Sockets最初只是UNIX系统中最流行的网络通信接口之一,它不支持微机DOS环境和Microsoft Windows环境。Sockets在UNIX中成功的应用产生了将其移植到DOS和Windows环境下的设想。1992年,制定出Windows Sockets规范1.0版;在此之后,一些原创 2010-01-27 22:28:00 · 971 阅读 · 0 评论 -
WSAEventSelect模型
WSAEventSelect() 简述:确定与所提供的FD_XXX网络事件集合相关的一个事件对象。 #include int WSAAPI WSAEventSelect ( SOCKET s, WSAEVENT hEventObject, long lNetworkEvents ); s:一个标识套接口的描述字。 hEventObject:一个句柄,用于标识与所提供的FD_XXX原创 2010-01-27 22:20:00 · 718 阅读 · 0 评论 -
VC++mfc文体编程学习笔记
CClientDC dc(this); //设置字体 CFont font; font.CreatePointFont(300,"华文行楷",NULL); CFont *pOldFont=dc.SelectObject(&font); TEXTMETRIC tm; dc.GetTextMetrics(&tm); if (0x0d==nChar)//处理回车原创 2010-01-27 21:00:00 · 1095 阅读 · 0 评论 -
MMS流媒体下载原理
现在网上有很多可以点播的视频节目,大部分是MMS流媒体格式的,文件后缀一般是 WMV 或者ASF。虽然可以直接用 Windows Media Player 9 播放,但是经常会被一次又一次的“正在缓冲”打断,再好的影片也没耐心了。如果能像其他类型的资源,下载到硬盘上观看就方便多了。下面详细介绍具体原理和实现步骤。这里以WMV格式为例,其实ASF也是一样的,只不过它的图像品质更高些。 首先简转载 2008-10-26 04:34:00 · 5644 阅读 · 4 评论