只乙個框架性流程而矣............
實現重疊模型的步驟
下面就結合俺寫的乙個console程式簡單示例進行說明:
【第一步】開啟串列埠
【第二步】設定緩衝區大小
if(!setupcomm(m_hcom,2048,2048))
protocoltype;
typedef enum
packetdatatype;
//串列埠資料結構
typedef struct serialnetproto
packethead;
int datalen = 100;
char *pbuf = new char[datalen];
strcpy(pbuf,"hello world!");
datalen = strlen(pbuf);
packethead myhead;
myhead.destinationaddr = 11;
myhead.sourcedaddr = 10;
myhead.datatype = attemper_command;
myhead.datalength = datalen;
myhead.netstate = packet;
myhead.packetsize = sizeof(packethead) - sizeof(unsigned long);
myhead.offset = sizeof(myhead.destinationaddr) +sizeof(myhead.sourcedaddr) + sizeof(myhead.datatype) +sizeof(myhead.datalength) + sizeof(myhead.netstate) + sizeof(myhead.packetsize);
char *psendbuffer = new char[sizeof(myhead)+datalen+ 4];//傳送的資料
memcpy(psendbuffer,"##",2);//包頭標誌
memcpy(psendbuffer+2,(char*)&myhead,sizeof(myhead));//包頭
memcpy(psendbuffer+2+sizeof(myhead),pbuf,datalen);//資料
memcpy(psendbuffer+2+sizeof(myhead)+datalen,"@@",2);//包尾標誌
【第七步】傳送資料
【第八步】資料接收
dword dwerror;
dword dwwantread = 100;
dword dwrealread = 0;
char* preadbuf = new char[100];
if (clearcommerror(m_hcom,&dwerror,null))
//查詢資料禎的開始標誌
pdest = (char*)find(buf,"##",max_serial_buffer*2,2);
if (pdest)
else//沒有找到開始禎標誌"##"
//查詢資料禎的結尾標誌
pdest = (char*)find(buf,"@@",max_serial_buffer*2,2);
if (pdest)
else
}//乙個在記憶體塊中查詢指定字串的函式
void* find(const char *psour,const char *pdest,int sourlen,int destlen)
else
}if(j == destlen)
else
,略......
注:文章**
VC 串列埠程式設計之基於Win32 API
1 api描述 在win32 api中,串列埠使用檔案方式進行訪問,其操作的api基本上與檔案操作的api一致。開啟串列埠 win32 中用於開啟串列埠的api 函式為createfile,其原型為 例如,以下程式用於以同步讀寫方式開啟串列埠com1 handle hcom dword dwerro...
掃雷程式 win32API
1 已實現功能 基本的掃雷方塊的展開,方塊周圍雷數的計算,方塊的標旗,勝負的判斷,難度的更改 2 未實現功能 控制台顯示剩餘標旗數量和當前所用時間,選單項的豐富 3 基本原理 使用一張二維int表儲存每個方格的數字資訊,其中9表示雷 將整個雷區 客戶區 按難度分割成方格,每個方格為乙個靜態控制項,用...
基於WIN32 API介面程式設計實現的掃雷小遊戲
1專案介紹 1.1 開發介紹 作業系統 windows 7 及以上版本系統 開發環境 vs2010 1.2 掃雷操作 滑鼠操作 1.3 勝利標準 將所有的雷找到 1.4 遊戲規則 通過滑鼠左鍵單擊即可挖開方塊,顯示數字為周圍八個區域的炸彈數。通過推理可以找到地雷,然後通過滑鼠右鍵可以進行標記。如果發...