ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MFC + Duilib 学习及总结

2021-12-11 21:33:38  阅读:206  来源: 互联网

标签:总结 Duilib MFC hash break case AfxMessageBox AtoI str



typedef DWORD64 hash_t;            // 这个长度会溢出
constexpr hash_t prime = 0x100000001B3ull;
constexpr hash_t basis = 0xCBF29CE484222325ull;
inline hash_t hash_(const char *str)
{
hash_t ret{ basis };
while (*str)
{
ret ^= *str;
ret *= prime;
str++;
}
return ret;
}

constexpr hash_t AtoI(char const* str, hash_t last_value = basis)
{
return *str ? AtoI(str + 1, (*str ^ last_value) * prime) : last_value;
}

 

m_cmd = m_ListCtrl.GetProcessListCtrlItemText(r, 3, m_pProListCtrl);//读进程第三列的信息
//m_ListBox.SetListBoxItem(m_pRichEdit, CString(m_str)); // 写入日志
m_pDisTestItem->SetText(m_cmd); // 显示当前读到信息
m_Log.PrintStr(m_cmd); // 打印测试LOG
m_SuperStr.CStringToChar(m_cmd, haschar);
switch (hash_(haschar))
{
case AtoI("InitDevice"): ::AfxMessageBox(_T("InitDeivce")); break;
case AtoI("PowerOn"): ::AfxMessageBox(_T("PowerOn")); break;
case AtoI("TestVol"): ::AfxMessageBox(_T("TestVol")); break;
case AtoI("TestCur"): ::AfxMessageBox(_T("TestCur")); break;
case AtoI("TestMAC"): ::AfxMessageBox(_T("TestMAC")); break;
case AtoI("TestDeviceInfo"): ::AfxMessageBox(_T("TestDeViceInfo"));break;
case AtoI("TestISC"): ::AfxMessageBox(_T("TestISC")); break;
case AtoI("TestSW1"): ::AfxMessageBox(_T("TestSW1")); break;
case AtoI("TestSW2"): ::AfxMessageBox(_T("TestSW2")); break;
case AtoI("TestSW3"): ::AfxMessageBox(_T("TestSW3")); break;
case AtoI("TestBlueLed"): ::AfxMessageBox(_T("TestBlueLed")); break;
case AtoI("TestRedLed"): ::AfxMessageBox(_T("TestRedLed")); break;
case AtoI("TestGreenLed"): ::AfxMessageBox(_T("TestGreenLed")); break;
case AtoI("TestRelay1"): ::AfxMessageBox(_T("TestRelay1")); break;
case AtoI("TestRelay2"): ::AfxMessageBox(_T("TestRelay2")); break;
default: break;
}

 

 

 

 

标签:总结,Duilib,MFC,hash,break,case,AfxMessageBox,AtoI,str
来源: https://www.cnblogs.com/faibg/p/15677197.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有