10
ответов

Странная ошибка MSC 8.0: “Значение ESP не было правильно сохранено через вызов функции …”

Мы недавно попытались разбить некоторые наши проекты Visual Studio в библиотеки, и все, казалось, скомпилировало и создало прекрасный в тестовом проекте с одним из проектов библиотеки как...
вопрос задан: 30 December 2016 13:37
9
ответов

Почему делает ABI Mac, требуют 16-байтового выравнивания стека для x86-32?

Я могу понять это требование для старой PPC системы RISC и даже для x86-64, но для старого проверенного x86? В этом случае стек должен быть выровненный на 4-байтовых границах только. Да, некоторые...
вопрос задан: 17 December 2015 19:24
7
ответов

Что такое __stdcall?

Я изучаю программирование на Win32, и прототип WinMain выглядит следующим образом: int WINAPI WinMain (экземпляр HINSTANCE, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show) Я был озадачен тем, что ...
вопрос задан: 9 January 2014 23:57
7
ответов

Почему параметры по умолчанию должны быть добавлены в последний раз в функциях C++?

Почему параметры по умолчанию должны быть добавлены в последний раз в функциях C++?
вопрос задан: 14 July 2009 16:50
6
ответов

Каково значение и использование __stdcall?

Я встречал __stdcall много в эти дни. MSDN не очень четко объясняет, что это на самом деле означает, когда и зачем его использовать, если оно вообще используется. Буду признателен, если кто-то предоставит ...
вопрос задан: 30 August 2018 03:46
5
ответов

Как компиляторы C реализуют функции, которые возвращают большие структуры?

Возвращаемое значение функции обычно хранится на стеке или в регистре. Но для большой структуры, это должно быть на стеке. Сколько копирования должно произойти в реальном компиляторе для этого кода?...
вопрос задан: 18 October 2019 02:07
5
ответов

Получение вызывающего метода называет из метода [дубликат]

Возможный Дубликат: Как я могу найти метод который названным существующим методом? У меня есть метод в объекте, который называют от многих мест в объекте. Есть ли быстрый и простой способ...
вопрос задан: 23 May 2017 01:54
5
ответов

Я могу программно вывести соглашение о вызовах, используемое C++ dll?

Предположите, что требуется записать программу, которая тестирует функции в C++ dll файл. Необходимо позволить пользователю выбрать dll (мы предполагаем, что говорим о C++ dlls). Он должен смочь получить список...
вопрос задан: 29 September 2011 14:55
5
ответов

Почему существует так много разных соглашений о вызовах?

Исторически сложилось так, почему это выглядит примерно каждый и их младший брат определили свои собственные правила вызова? У вас есть C, C ++, Windows, Pascal, Fortran, Fastcall и, вероятно, zillion ...
вопрос задан: 9 August 2010 09:21
5
ответов

Передайте класс Delphi функции/методу C++, которая ожидает класс с __ thiscall методы

У меня есть некоторый MSVC ++, скомпилировал DLL, для которого я создал подобные COM (облегченные) интерфейсы (абстрактные классы Delphi). Некоторые из тех классов имеют методы, для которых нужны указатели на объекты. Эти методы C++...
вопрос задан: 19 April 2010 15:14
4
ответа

Каковы различные соглашения о вызовах в C/C++ и что каждый имеет в виду?

Существуют различные соглашения о вызовах, доступные в C/C++: stdcall, экстерн, Паскаль, и т.д. Сколько такие соглашения о вызовах доступны, и что каждый имеет в виду? Есть ли любые ссылки, которые описывают...
вопрос задан: 3 July 2017 21:56
4
ответа

Что такое пользовательские соглашения о вызовах?

Что это такое? И как я затронут ими как разработчик? Похожие страницы: Каковы различные соглашения о вызовах в C/C++ и что каждый имеет в виду?
вопрос задан: 23 May 2017 11:55
4
ответа

fastcall действительно быстрее?

fastcall соглашение о вызовах действительно быстрее, чем другие соглашения о вызовах, такие как cdecl? Есть ли какие-либо сравнительные тесты там, что шоу, как производительность затронута соглашением о вызовах?
вопрос задан: 19 August 2015 07:42
3
ответа

Что такое safecall?

Я работаю над созданием EXE ActiveX с помощью VB6, и единственный пример, который я получил, все записан в Delphi. Читая пример кода, я заметил, что существуют некоторые функции, подписи которых...
вопрос задан: 10 December 2011 23:15
3
ответа

Какой-либо реальный вариант использования для использования соглашения о вызовах fastcall?

У Вас был какой-либо реальный вариант использования для использования соглашения о вызовах fastcall?Спасибо.
вопрос задан: 9 June 2010 08:01
3
ответа

Как обратный адрес указан в стеке?

Это - то, чем я вижу, демонтируют для функции оператора (1,2,3);: movl 0$ x3,0x8 (%esp) movl 0$ x2,0x4 (%esp) movl 0$ x1, (%esp) называют 0x4012d0 <_Z8functioniii>, Это кажется мочить адресом...
вопрос задан: 30 March 2010 04:59
3
ответа

Может создание статичного метода, улучшают производительность, и при каких обстоятельствах?

Когда, если когда-нибудь, это быстрее, чтобы передать аргументы как аргументы статическому методу, а не иметь метод быть нестатичным и получить доступ к тем же значениям через членов экземпляра. Примите доступы метода...
вопрос задан: 15 October 2009 16:40
2
ответа

Почему в этой разборке стек увеличивается на 16 байт, когда у меня есть только одна 4-байтовая локальная переменная?

У меня возникают проблемы с пониманием того, почему компилятор решил сместить пространство стека так, как это было сделано с кодом, который я написал. Я играл с Godbolt's Compiler Explorer, чтобы изучить C ...
вопрос задан: 16 January 2019 18:26
2
ответа

Что такое эпилоги функции и прологи?

При чтении некоторого соглашения о вызовах в некоторой архитектуре ЦП я считал что-то как "эпилог и пролог", когда функция вызвана от другой функции. Что такое пролог функции или...
вопрос задан: 6 December 2016 01:10
2
ответа

Почему вызывающая сторона должна очистить стек в cdecl соглашении о вызовах?

От: http://en.wikipedia.org/wiki/X86_calling_conventions продвигает нажатие c b, продвигают вызов function_name, добавляют особенно, 12; Стек, очищающийся mov x, eax, Почему мы должны явно добавить 12 к ESP для очистки...
вопрос задан: 18 October 2015 12:03
2
ответа

Что находится на этих 68 000 стеков, когда классическая MacOS вводит программу?

Я пытаюсь понять старую классическую точку входа приложения Mac. Я демонтировал первый ресурс КОДА (не CODE#0, который является таблицей переходов). Код относится к некоторым переменным от стека:...
вопрос задан: 30 April 2010 13:24
1
ответ

Какие регистры сохранить в ARM C соглашение о вызовах?

Это было некоторое время, так как я продержался кодированный ассемблер руки, и я немного ржав в деталях. Если я вызываю функцию C от руки, я только должен волноваться о сохранении r0-r3 и lr, правильно? Если функция C...
вопрос задан: 28 July 2019 14:14
1
ответ

Как использовать внутренние типы классов C ++ из C? [Дубликат]

У меня есть класс C ++ MyClass, который объявляет общедоступный тип перечисления MyEnum, и я хочу использовать это перечисление в файле C. Как я могу это сделать ? Я пытался объявить свои функции в файле C ++, а затем положить все ...
вопрос задан: 27 March 2019 18:59
1
ответ

Неправильное 32-битное соглашение о вызове для InterlockedExchange для Clang ++, но MSVC прекрасно

Я использую инструменты clang power для компиляции проекта, который обычно скомпилирован с использованием visual studio. В заголовке lwm_win32.hpp boost (да, мы используем старую версию boost и в настоящее время не можем обновить) ...
вопрос задан: 13 July 2018 23:29
1
ответ

Пользовательское соглашение о вызовах X86_64 к вызову функции C

Я должен сделать интерфейс (скажите, обертка), которые позволяют вызов из ассемблерного кода X86_64 с помощью его соглашения о вызовах для функции C с другим соглашением о вызовах. Лучшая вещь состояла бы в том, чтобы быть симпатичной "...
вопрос задан: 23 May 2017 12:19
1
ответ

Кто-то мог объяснить __ declspec (явный)?

Я изучаю портирование механизма выполнения сценария, записанного для Windows в Linux; это - для платформы визуализации Winamp AVS. Я не уверен, возможно ли это даже в данный момент. Из того, что я могу сказать, что код...
вопрос задан: 3 February 2015 14:27
1
ответ

Изменение соглашения о вызовах делегата C # на CDECL

У меня была эта проблема с C #, когда я использовал DotNet1.1. Проблема в следующем. У меня есть неуправляемая dll, в которой есть функция, которая принимает указатель на функцию (среди других аргументов). Когда я объявляю ...
вопрос задан: 14 October 2014 13:54
1
ответ

Как объявить указатель на функцию __stdcall

Я попробовал этот typedef void (* __stdcall MessageHandler) (const Task *); Это компилируется, но дает мне это предупреждение (VS2003): предупреждение C4229: используется анахронизм: модификаторы данных игнорируются Я хочу ...
вопрос задан: 14 March 2011 12:11
1
ответ

Получение путает с соглашением о вызовах ABI и дугой

Я добираюсь, путают со всеми теми условиями: ABI, соглашение о вызовах и аппаратная архитектура. ABI является ссылкой с архитектурой: x86-64 имеют другой ABI, чем i386. Но затем Вы можете также...
вопрос задан: 12 August 2010 16:21
1
ответ

Когда использовать соглашения о вызовах

Каковы ключевые факторы при использовании различных соглашений о вызовах? Когда делает кто-то знает для использования определенных соглашений о вызовах такой в качестве __ cdecl или __ stdcall или __ fastcall в различных случаях. Примеры...
вопрос задан: 4 August 2010 11:26