從串口接收編輯框讀取資料,執行異或(XOR)運算,結果輸出到另一編輯框。
GetDlgItemInt(nID, NULL, FALSE):從編輯框讀取整數(無號)。SetDlgItemInt(nID, value, FALSE):將整數寫入編輯框。^(位元級 XOR)。void CMyDlg::OnBnClickedXorCalc() {
UINT val1 = GetDlgItemInt(IDC_EDIT_SRC, NULL, FALSE); // 來源編輯框
UINT val2 = GetDlgItemInt(IDC_EDIT_KEY, NULL, FALSE); // 金鑰編輯框(可選)
UINT result = val1 ^ val2; // 異或
SetDlgItemInt(IDC_EDIT_DEST, result, FALSE); // 目標編輯框
}
CString strHex;
GetDlgItemText(IDC_EDIT_SRC, strHex);
DWORD val = 0;
for (int i=0; i='0'&&c<='9'? c-'0' : (c>='A'&&c<='F'? c-'A'+10 : c-'a'+10));
}
DWORD key = 0xA5A5A5A5; // 固定金鑰
DWORD res = val ^ key;
CString strRes;
strRes.Format(_T("%08X"), res);
SetDlgItemText(IDC_EDIT_DEST, strRes);
(A ^ B) ^ B == A,常用於簡易加密/校驗。OnComm 事件中累積完整幀後再更新 UI,避免頻繁 SetDlgItemText 導致閃爍。