串列埠學習筆記原始碼 VS2010

2021-06-20 02:56:29 字數 3775 閱讀 7648

// serialdlg.cpp : 實現檔案

//#include "stdafx.h"

#include "serial.h"

#include "serialdlg.h"

#include "afxdialogex.h"

#include "io.h"

#include "windows.h"

#ifdef _debug

#define new debug_new

#endif

// 用於應用程式「關於」選單項的 caboutdlg 對話方塊

handle hcom;

class caboutdlg : public cdialogex

; protected:

virtual void dodataexchange(cdataexchange* pdx); // ddx/ddv 支援

// 實現

protected:

declare_message_map()

};caboutdlg::caboutdlg() : cdialogex(caboutdlg::idd)

void caboutdlg::dodataexchange(cdataexchange* pdx)

begin_message_map(caboutdlg, cdialogex)

end_message_map()

// cserialdlg 對話方塊

cserialdlg::cserialdlg(cwnd* pparent /*=null*/)

: cdialogex(cserialdlg::idd, pparent)

void cserialdlg::dodataexchange(cdataexchange* pdx)

begin_message_map(cserialdlg, cdialogex)

on_wm_syscommand()

on_wm_paint()

on_wm_querydragicon()

on_cbn_selchange(idc_combo1, &cserialdlg::oncbnselchangecombo1)

on_bn_clicked(idc_button2, &cserialdlg::onbnclickedbutton2)

on_bn_clicked(idc_button1, &cserialdlg::onbnclickedbutton1)

on_bn_clicked(idc_button3, &cserialdlg::onbnclickedbutton3)

on_wm_close()

end_message_map()

// cserialdlg 訊息處理程式

bool cserialdlg::oninitdialog()

} // 設定此對話方塊的圖示。當應用程式主視窗不是對話方塊時,框架將自動

// 執行此操作

seticon(m_hicon, true); // 設定大圖示

seticon(m_hicon, false); // 設定小圖示

// todo: 在此新增額外的初始化**

// handle hcomm;

/* hcomm=createfile("com1", //串口號

generic_read|generic_write, //允許讀寫

0, //通訊裝置必須以獨佔方式開啟

null, //無安全屬性

open_existing, //通訊裝置已存在

0); //通訊裝置不能用模板開啟

*/ if(hcom==(handle)-1)

messagebox(_t("開啟com成功!"));

setupcomm(hcom,100,100);//輸入緩衝區和輸出緩衝區的大小都是100

commtimeouts timeouts;

//設定讀超時

timeouts.readintervaltimeout=maxdword;

timeouts.readtotaltimeoutmultiplier=0;

timeouts.readtotaltimeoutconstant=0;

//在讀一次輸入緩衝區的內容後讀操作就立即返回,

//而不管是否讀入了要求的字元.

//設定寫超時

timeouts.writetotaltimeoutmultiplier=100;

timeouts.writetotaltimeoutconstant=500;

setcommtimeouts(hcom,&timeouts);//設定超時

dcb dcb;

getcommstate(hcom,&dcb);

dcb.baudrate=9600;//波特率為9600

dcb.bytesize=8;//每個位元組有8 位

dcb.parity=noparity;//無奇偶校驗位

乙個停止位

dcb.stopbits=1;//乙個停止位

setcommstate(hcom,&dcb);

purgecomm(hcom,purge_txclear|purge_rxclear);

return true; // 除非將焦點設定到控制項,否則返回 true

}void cserialdlg::onsyscommand(uint nid, lparam lparam)

else }

// 如果向對話方塊新增最小化按鈕,則需要下面的**

// 來繪製該圖示。對於使用文件/檢視模型的 mfc 應用程式,

// 這將由框架自動完成。

void cserialdlg::onpaint()

else }

//當使用者拖動最小化視窗時系統呼叫此函式取得游標

//顯示。

hcursor cserialdlg::onquerydragicon()

void cserialdlg::oncbnselchangecombo1()

void cserialdlg::onbnclickedbutton2()//開啟關閉串列埠

return ture;*/

/* if(hcom==(handle)-1) 

return true;*/

}void cserialdlg::onbnclickedbutton1()//傳送資料 }}

void cserialdlg::onbnclickedbutton3()//接收資料

} purgecomm(hcom,purge_txabort|

purge_rxabort|purge_txclear|purge_rxclear);

//如果選擇了"十六進製制顯示",則顯示十六進製制值

// cstring str;

// if(m_ctrlhexreceieve.getcheck())

// str.format("%02x ",ch);

// else

// str.format("%c",ch);

// strncpy(ch, str, 100);

// (l"%c", bt);

// memcpy(ch, str, 100);

// sprintf(ch, "%c",str);

ch.format("%s\n",str);

m_receive=ch;

updatedata(false);

}void cserialdlg::onclose()

使用VS2010編譯OpenSSL原始碼

2,安裝visual studio 2010 確認選中 x64編譯器和工具 3,安裝activeperl 5,拷貝nsam.exe和ndisam.exe至d program files x86 microsoft visual studio 10.0 vc bin 目錄 6,開啟visual stu...

Vs2010學習筆記 5

新學習 客戶端開發變的更容易 新的ajax tamplate control client seo roting url 更整潔精幹為seo提供支援 控制項本身設定viewstate 頁面關閉viewstate內容。區域性使用viewstate 感覺很雞肋,沒有解決實際問題 demo 新projec...

在VS2010中應用SIFT(C)原始碼

ps 很久沒做cv的事情了,這是很早以前剛入門時候的一篇,以後再有cv相關工作會發布在新的個人站點 cv分類下。update 2013 03 17 15 29 from freedomshe sift的實現有很多版本,具體方式都是那麼幾個,找個好用的不太容易,因為對於 不熟練者各種版本用起來都有點水...