Tmain () de ce se deplasează stivele de nume în limba rusă

Pentru programele non-Unicode, se utilizează numele principal principal și lista parametrilor int argc, char * argv [].

Pentru programele Unicode, lista parametrilor din MSVC arata ca int argc, wchar_t * argv []. și pentru a evita conflictele cu sursele și compilatoarele care respectă standardul, funcția se numește wmain.







Pentru programele care pot fi compilate în modul Unicode și non-Unicode, lista de argumente arata ca int argc, _TCHAR * argv []. unde macro _TCHAR este definit ca char sau wchar_t, în funcție de valoarea macro _UNICODE. Astfel, aveți nevoie de al treilea nume al funcției. Deci numele _tmain a fost inventat.







Toate acestea, desigur, necesită o magie linker, care ar trebui să poată determina punctul de intrare nu numai în funcția principală. ca în standard, dar în funcțiile wmain / _tmain.

Dacă sunteți sigur că nu aveți nevoie de aplicații bazate pe Unicode puteți redenumi funcția principală și dau o listă de argumente int argc, char * argv []. pentru a se conforma standardului. Sau, dacă vă decideți ferm că programul va rula doar sub linia WinNT / XP / 7 (în loc de Win95 / 98), puteți rămâne pe Unicode versiunea și redenumiți wmain funcția (respectiv, argumentele trebuie să fie int argc, wchar_t * argv []).

O actualizare întârziată (datorită @alexolut): Conform documentației. _tmain este definit în folosind typedef ca principal sau wmain. astfel încât în ​​programul dvs. va fi încă principal. sau wmain.

(Și da, puteți să omiteți parametrii sau să adăugați al treilea parametru envp sau să declarați void tipul returnării.)







Articole similare

Trimiteți-le prietenilor: