不同的 Entry,其預設的字串編碼也不同,UEFI 預設是使用 Unicode ﹝UINT16﹞,而標準 C 則是使用 ASCII﹝char﹞。
不過,為了 porting 的方便,我大部份都使用 main 型式,反正還是可以呼叫 UEFI 相關函數。
| C code Entry | UefiMain | ShellAppMain | main | 
| parameter | EFI_HANDLE        ImageHandle, EFI_SYSTEM_TABLE *SystemTable  | 
  UINTN Argc, CHAR16 **Argv  | 
  int argc, char *argv[]  | 
| include file | #include  <Uefi.h> #include <Library/UefiLib.h> #include <Library/UefiApplicationEntryPoint.h>  | 
  #include  <Uefi.h> #include <Library/UefiLib.h> #include <Library/ShellCEntryLib.h>  | 
  |
| [Defines] (INF) ENTRY_POINT  | 
  UefiMain | ShellCEntryLib | ShellCEntryLib | 
| [Packages] (INF) | MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec  | 
  MdePkg/MdePkg.dec ShellPkg/ShellPkg.dec  | 
  MdePkg/MdePkg.dec ShellPkg/ShellPkg.dec StdLib/StdLib.dec  | 
| [LibraryClasses] (INF) | UefiApplicationEntryPoint UefiLib  | 
  ShellCEntryLib UefiLib  | 
  ShellCEntryLib UefiLib LibC  | 
為了避免不必要的誤解,我都習慣不將不需要的東西放入專案,這樣一來,Code 看起來才會賞心悅目。











