?????????????????????????????????????????????????????????????λ???????????????????????????????????????????????????????????????????????????????????饗PCB???????????????????????????е???????У??????????????????????????????????????????????????????????????

??????????????????????????е???????????????????????????

????1??????????????????????????????????????????????????????????

????2??????????????а??????п?????????DLL?????????????

????Windows??????????????ó???GUI?????CUI?????????????????????????д????????????ó???????????????ó????????vc????????ó??????????????????????????????????????Щ?????????????????????????????????????????CUI?????????????/SUBSYSTEM??CONSOLE??????GUI????????/SUBSYSTEM??WINDOWS??

??????Щ???????????????????????????????????????GUI???????????????WinMain??CUI??????main??

????????????????????????е????????????????????????????????????????????????????????ú????????????C/C++???п?????????????C++??????

??????????ó???????????????????????????ANSI??????£?GUI??????????????WinMainCRTStartup??????????WinMain??CUI???????????mainCRTStartup??????????main??Unicode??????£?GUI??????????????wWinMainCRTStartup??????????wWinMain??CUI???????????wmainCRTStartup?????????wmain??

??????????д??????μ???ó?????????????argv???????????в????????????????????????????????????????????????????????????????????????????????????

????1??????????????

????2???????????????????

????3???????C/C++???п??????????

????4???????C???п??????亯????

????5????????????????C++?????????????

?????????????Щ????????????????????ó???????????????????????????????????????????????????????C???п???exit??Exit????????????????????C++?????????????????????????????????????????????????ExitProcess??????????????????÷????????????

??????????????????????????????DLL??????????????????????????????????λ?á???????????????????????WinMain??????????????????????????????????????????????????????????????????????е????λ?á????????????????????????????????????????????ò??????????????exe?????dll???????????????????exe?????400000??dll??10000000??

??????????????????????dll????????????????????λ??????????GetModuleHandle????????????????/0??β?????????????dll????????????????????????NULL??????????????????????????????????????????????????dll????????????????????????????dll????У????????????????????????????????У?????????GetModuleHandleEx???????GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS?????????????????????????????????????????????????????????????????????????????????????dll????????

??????????????????????????????У??????????????????????????洢?п??????????????C???п?????????????????GUI??ó???????????windows????GetCommandLine????y?????????????У??????????????????????????????WinMain??pszCmdLine??????

????????????????????????????????顣??????幤?????????????????????????????????á???ó??????????????????????????????????????????????????????г???????????ó????????????????????в?????????????????????????????????????????????????????????????????????????????????????GetEnvironmentStrings????????????????????顣?????????????黷??????????Щ??????????????????????????????????????????Щ??????????????????С??????????е???????????????????????????????????????????顣GetEnvironmentVariable?????????????ж???????????????????

?????????????????????????%USERPROFILE%??????????????????%????????????????????滻???????????????????????????????塣

???????????SetEnvironmentVariable???????????????????????

????Windows???????????????????????????????л??????????????????????????????????????y?????????????????????????????????

????????????????У????????????????cpu?????У????????????????????????????丸???????????

?????????????????·??????windows????????????????????????????????????磺????CreateFile??????????????????????????????????????????????????????

??????????????????????????????????????????Щ?????????????λ????????????y????????????????????????????????????????????????

????????????????GetCurrentDirectory??SetCurrentDirectory????ú?????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????GetVersionEx??????window????汾???