?? mail.cpp
字號:
#include "stdafx.h"
#include "mail.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CWinApp theApp;
using namespace std;
int _tmain(int argc, TCHAR *argv[],TCHAR *envp[])
{
DWORD dwNextSize(0),dwMsgCount(0);
int nRetCode = 0;
static LPCTSTR c_szSlotName="\\\\.\\mailslot\\mymailslot"; //系統(tǒng)中mailslot的名稱
HANDLE hSlot=CreateMailslot(c_szSlotName,//mailslot的名稱
0, //消息的最大長度,0表示最大長度
MAILSLOT_WAIT_FOREVER,//等待輸入時間,以毫秒計,0表示不等待,MAILSLOT_WAIT_FOREVER表示等待
0);//默認安全性
if(hSlot!=INVALID_HANDLE_VALUE)
{
while(true)
{
//查看當前的狀態(tài)
if(GetMailslotInfo(
hSlot, //郵件槽的句柄
NULL, //指定用于裝載郵件槽的最大消息長度
&dwNextSize, //用于裝載下一條消息的長度
&dwMsgCount, //用于裝載郵件槽中準備好的消息數(shù)量
NULL)) //指定的默認閱讀超時門限
{
if(dwMsgCount>0)
{
char *szBuffer=new char[dwNextSize+1]; //創(chuàng)建一個新的緩沖區(qū)
DWORD dwRead(0);
if(ReadFile(
hSlot, //獲得的郵件槽的句柄
szBuffer, //數(shù)據(jù)緩沖區(qū)
dwNextSize, //緩沖區(qū)的長度
&dwRead, //指向讀入的數(shù)據(jù)的指針
NULL)) //同步的讀
{
//從隊列中消除消息
szBuffer[dwRead]='\0';
std::cout<<szBuffer<<std::endl;
}
delete []szBuffer;
szBuffer=NULL;
}
else
{Sleep(100);} //暫停
}
}
}
//消除對象
CloseHandle(hSlot);
hSlot=INVALID_HANDLE_VALUE;
return nRetCode;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -