不同的 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 看起來才會賞心悅目。

 










