diff --git a/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp b/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp
index 6fb3233..23bd1de 100644
--- a/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp
@@ -49,21 +49,6 @@
   delete H;
 }
 
-CBC_QRCoderErrorCorrectionLevel* CBC_QRCoderErrorCorrectionLevel::ForBits(
-    int32_t bits) {
-  switch (bits) {
-    case 0x00:
-      return M;
-    case 0x01:
-      return L;
-    case 0x02:
-      return H;
-    case 0x03:
-      return Q;
-    default:
-      return nullptr;
-  }
-}
 void CBC_QRCoderErrorCorrectionLevel::Destroy() {
   if (L) {
     delete CBC_QRCoderErrorCorrectionLevel::L;
diff --git a/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h b/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h
index ff7563c..55a2957 100644
--- a/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h
+++ b/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h
@@ -19,7 +19,6 @@
   static void Initialize();
   static void Finalize();
   static void Destroy();
-  static CBC_QRCoderErrorCorrectionLevel* ForBits(int32_t bits);
 
   ~CBC_QRCoderErrorCorrectionLevel();
 
diff --git a/fxbarcode/qrcode/BC_QRCoderMode.cpp b/fxbarcode/qrcode/BC_QRCoderMode.cpp
index 0f8c227..b8e66a4 100644
--- a/fxbarcode/qrcode/BC_QRCoderMode.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderMode.cpp
@@ -75,34 +75,6 @@
   delete sSTRUCTURED_APPEND;
 }
 
-CBC_QRCoderMode* CBC_QRCoderMode::ForBits(int32_t bits, int32_t& e) {
-  switch (bits) {
-    case 0x0:
-      return sTERMINATOR;
-    case 0x1:
-      return sNUMERIC;
-    case 0x2:
-      return sALPHANUMERIC;
-    case 0x3:
-      return sSTRUCTURED_APPEND;
-    case 0x4:
-      return sBYTE;
-    case 0x5:
-      return sFNC1_FIRST_POSITION;
-    case 0x7:
-      return sECI;
-    case 0x8:
-      return sKANJI;
-    case 0x9:
-      return sFNC1_SECOND_POSITION;
-    case 0x0D:
-      return sGBK;
-    default:
-      e = BCExceptionUnsupportedMode;
-      return nullptr;
-  }
-}
-
 int32_t CBC_QRCoderMode::GetBits() const {
   return m_bits;
 }
diff --git a/fxbarcode/qrcode/BC_QRCoderMode.h b/fxbarcode/qrcode/BC_QRCoderMode.h
index 9f2844d..ee78ef9 100644
--- a/fxbarcode/qrcode/BC_QRCoderMode.h
+++ b/fxbarcode/qrcode/BC_QRCoderMode.h
@@ -19,7 +19,6 @@
 
   static void Initialize();
   static void Finalize();
-  static CBC_QRCoderMode* ForBits(int32_t bits, int32_t& e);
   static void Destroy();
 
   int32_t GetCharacterCountBits(int32_t number, int32_t& e) const;
diff --git a/fxbarcode/utils.h b/fxbarcode/utils.h
index 9fd1400..6a0cfca 100644
--- a/fxbarcode/utils.h
+++ b/fxbarcode/utils.h
@@ -46,7 +46,6 @@
 #define BCExceptionIllegalArgument 16
 #define BCExceptionValueMustBeEither0or1 50
 #define BCExceptionBadIndexException 52
-#define BCExceptionUnsupportedMode 64
 #define BCExceptionInvalidateMaskPattern 68
 #define BCExceptionCharacterNotThisMode 75
 #define BCExceptionCharactersOutsideISO88591Encoding 87
