Pytania otagowane jako calling-convention

8
Co to jest __stdcall?
Uczę się programowania w Win32, a WinMainprototyp wygląda tak: int WINAPI WinMain ( HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show ) Nie wiedziałem, do czego WINAPIsłuży ten identyfikator, i znalazłem: #define WINAPI __stdcall Co to robi? Jestem zdezorientowany tym, że mam coś po typie powrotu. Do czego służy __stdcall? …

4
Dlaczego Windows64 używa innej konwencji wywoływania niż wszystkie inne systemy operacyjne na x86-64?
AMD ma specyfikację ABI, która opisuje konwencję wywoływania używaną na x86-64. Podążają za nią wszystkie systemy operacyjne, z wyjątkiem systemu Windows, który ma własną konwencję wywoływania x86-64. Czemu? Czy ktoś zna techniczne, historyczne lub polityczne powody tej różnicy, czy też jest to wyłącznie kwestia zespołu NIH? Rozumiem, że różne systemy …

7
Jak dokładnie działa stos wywołań?
Staram się uzyskać głębsze zrozumienie tego, jak działają operacje niskiego poziomu języków programowania, a zwłaszcza jak współdziałają z systemem operacyjnym / procesorem. Prawdopodobnie przeczytałem każdą odpowiedź w każdym wątku związanym ze stosem / stertą w Stack Overflow i wszystkie są genialne. Ale jest jeszcze jedna rzecz, której jeszcze nie w …

4
Dlaczego T * może zostać przekazany do rejestru, a unikalny_ptr <T> nie może?
Oglądam przemówienie Chandlera Carrutha w CppCon 2019: Brak abstrakcyjnych kosztów zerowych podaje w nim przykład tego, jak był zaskoczony tym, ile ponosisz koszty ogólne, używając std::unique_ptr&lt;int&gt;ponad int*; ten segment zaczyna się mniej więcej w punkcie czasowym 17:25. Możesz rzucić okiem na wyniki kompilacji jego przykładowej pary fragmentów (godbolt.org) - aby …

3
__cdecl lub __stdcall w systemie Windows?
Obecnie pracuję nad biblioteką C ++ dla systemu Windows, która będzie dystrybuowana jako biblioteka DLL. Moim celem jest maksymalizacja interoperacyjności binarnej; dokładniej, funkcje w mojej bibliotece DLL muszą być użyteczne z kodu skompilowanego z wieloma wersjami MSVC ++ i MinGW bez konieczności ponownej kompilacji biblioteki DLL. Jednak nie wiem, która …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.