⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toputil.cpp

📁 VC++串口通信设。本书详细说明讲解了在VC++环境下编写串口通信得过程。值得一看
💻 CPP
字号:
// Get needed include files
#include "TopUtil.h"


// Helper class, binding a Topping enum to its string name
struct CStringToEnumAssoc
{
   // We have to have this constructor
   CStringToEnumAssoc(const CString& strTopping,
                      Topping eTopping)
       : m_strTopping(strTopping),
         m_eTopping(eTopping)
   {}

   CString  m_strTopping;
   Topping  m_eTopping;
};


// Array to map string topping name to enum value supported by
// COM PizzaOrderTaker
CStringToEnumAssoc  g_aToppingAssocs[] =
   {
      CStringToEnumAssoc("Not a topping",        (Topping) 0      ),
      CStringToEnumAssoc("Pepperoni",            Pepperoni        ),
      CStringToEnumAssoc("Sausage",              Sausage          ),
      CStringToEnumAssoc("Ground Beef",          GroundBeef       ),
      CStringToEnumAssoc("Green Olives",         GreenOlives      ),
      CStringToEnumAssoc("Prosciuttini Ham",     ProsciuttiniHam  ),
      CStringToEnumAssoc("Pastrami",             Pastrami         ),
      CStringToEnumAssoc("Green Peppers",        GreenPeppers     ),
      CStringToEnumAssoc("Mushrooms",            Mushrooms        ),
      CStringToEnumAssoc("Onions",               Onions           ),
      CStringToEnumAssoc("Tomatoes",             Tomatoes         ),
      CStringToEnumAssoc("Pesto",                Pesto            ),
      CStringToEnumAssoc("Jalapeno Peppers",     JalapenoPeppers  ),
      CStringToEnumAssoc("Cheddar Cheese",       CheddarCheese    ),
      CStringToEnumAssoc("Fontina Cheese",       FontinaCheese    ),
      CStringToEnumAssoc("Ricotta Cheese",       RicottaCheese    ),
      CStringToEnumAssoc("Feta Cheese",          FetaCheese       ),
      CStringToEnumAssoc("Pineapple",            Pineapple        ),
      CStringToEnumAssoc("Extra Cheese",         ExtraCheese      ),
      CStringToEnumAssoc("Bacon",                Bacon            ),
      CStringToEnumAssoc("Broccoli",             Broccoli         ),
      CStringToEnumAssoc("Genoa Salami",         GenoaSalami      ),
      CStringToEnumAssoc("Zucchini",             Zucchini         ),
      CStringToEnumAssoc("Black Olives",         BlackOlives      ),
      CStringToEnumAssoc("Anchovies",            Anchovies        ),
      CStringToEnumAssoc("Chicken Breast",       ChickenBreast    ),
      CStringToEnumAssoc("Shrimp",               Shrimp           ),
      CStringToEnumAssoc("Artichoke Hearts",     ArtichokeHearts  )
   };


// Constant that tracks the number of toppings
const ULONG g_ulNumToppings =
   sizeof(g_aToppingAssocs) / sizeof(CStringToEnumAssoc);


CString ToppingUtil::ToppingEnumToStr(Topping  eSearchTopping)
{
   // Map an enum to a string
   for (USHORT usLoop = 1; usLoop < g_ulNumToppings; usLoop++)
      if (g_aToppingAssocs[usLoop].m_eTopping == eSearchTopping)
         return g_aToppingAssocs[usLoop].m_strTopping;

   // We should never get to here
   ASSERT(FALSE);
   return "";
}


Topping ToppingUtil::ToppingStrToEnum(const CString& strSearchTopping)
{
   // Map a string to an enum
   CString strRealSearchTopping = strSearchTopping.SpanExcluding("(");
   strRealSearchTopping.TrimRight();
   for (USHORT usLoop = 1; usLoop < g_ulNumToppings; usLoop++)
      if (g_aToppingAssocs[usLoop].m_strTopping == strRealSearchTopping)
         return g_aToppingAssocs[usLoop].m_eTopping;

   // We should never get to here
   ASSERT(FALSE);
   return (Topping) 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -