|
|
|
объясните разницу между cdecl и stdcall
|
|||
|---|---|---|---|
|
#18+
вот нашел статью, где вроде сравниваются эти два интерфейса Using the cdecl and stdcall Interfaces понял, что различаются заполнением стека параметрами и соответствнно извлечением параметров из стека. понятно, что интерфейсы у exe-шника и dll-ки должны совпадать. вопрос в том, что лучше применять при написании своего приложения, например, под Windows? есть ли разница под другими ОС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 14:21 |
|
||
|
объясните разницу между cdecl и stdcall
|
|||
|---|---|---|---|
|
#18+
FB Programmerвопрос в том, что лучше применять при написании своего приложения, например, под Windows? Для написания своего приложения лучше применять что-нибудь нормальное. Если нормальное вызывает затруднения, стоит использовать выбор компилятора по умолчанию - по крайней мере, не насажаешь лишних проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 14:35 |
|
||
|
объясните разницу между cdecl и stdcall
|
|||
|---|---|---|---|
|
#18+
FB Programmer, под x64 этого зоопарка больше нет для win dll - делай как все - пиши WINAPI (__stdcall ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 14:52 |
|
||
|
объясните разницу между cdecl и stdcall
|
|||
|---|---|---|---|
|
#18+
FB Programmerвот нашел статью, где вроде сравниваются эти два интерфейса Using the cdecl and stdcall Interfaces понял, что различаются заполнением стека параметрами и соответствнно извлечением параметров из стека. понятно, что интерфейсы у exe-шника и dll-ки должны совпадать. вопрос в том, что лучше применять при написании своего приложения, например, под Windows? есть ли разница под другими ОС? Нет понятия "интерфейсы у exe-шника и dll-ки". Есть вызывающая и вызываемая функции. Читать про "Calling convention" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 15:48 |
|
||
|
объясните разницу между cdecl и stdcall
|
|||
|---|---|---|---|
|
#18+
Скомбинирую вышеотписавшихся: - для монолитного приложения - по умолчанию - для собственных длл - по умолчанию - для вин длл, которыми пользоваться будет кто-то еще - stdcall. В win32 принято, что библиотечные длл используют именно stdcall, чтобы их можно было использовать из других языков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2016, 09:45 |
|
||
|
объясните разницу между cdecl и stdcall
|
|||
|---|---|---|---|
|
#18+
FB Programmer, cdecl: параметры функции убирает из stack-а тот, кто вызывает эту функцию. Это позволяет делать функции с переменным числом параметров (например, printf). stdcall: функция сама убирает из stack-а свои параметры. Машинного кода в итоге получается чуть меньше, чем с cdecl, поэтому когда-то давно именно stdcall было выбрано почти для всех WinAPI-шных функций. Но в современной жизни это настолько несущественная экономия, что при написании своих функций, про stdcall можно забыть, и всегда использовать cdecl. Например, кросс-платформенная GUI-библиотека GTK+ (которая в Windows доступна как набор dll) использует cdecl: gtkwindow.h Код: plaintext 1. Они даже не пишут в явном виде calling convention, потому что по умолчанию используется cdecl. Ну и вопреки названию, stdcall не имеет никакого отношения к стандартам языков C/C++. Вряд ли оно где-то широко используется за пределами Windows. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 03:24 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39285122&tid=1340639]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 340ms |

| 0 / 0 |
