Вопросы по теме 'calling-convention'

Получение имени вызывающего метода из метода
У меня есть метод в объекте, который вызывается из нескольких мест внутри объекта. Есть ли быстрый и простой способ узнать имя метода, который вызвал этот популярный метод. ПРИМЕР псевдокода: public Main() { PopularMethod(); } public...
77412 просмотров
schedule 09.05.2022

Передайте класс Delphi функции/методу C++, который ожидает класс с методами __thiscall
У меня есть несколько скомпилированных библиотек DLL MSVC++, для которых я создал COM-подобные (облегченные) интерфейсы (абстрактные классы Delphi). Некоторые из этих классов имеют методы, которым нужны указатели на объекты. Эти методы C++ объявлены...
2920 просмотров
schedule 22.02.2022

Соглашение о вызовах iPhone/ARM
на iPhone / ARM, какие регистры ЦП должны сохранять функции, если таковые имеются?
999 просмотров
schedule 09.07.2023

Что такое соглашение о вызовах системных вызовов OpenSolaris (x86)?
Что такое соглашение о вызовах системных вызовов OpenSolaris (x86)? Ф.э. Я хотел бы написать программу на 32-битной сборке, которая выводит строку на консоль. Для этого я хотел бы использовать системный вызов «запись» (№ 4). Определение C для...
415 просмотров

Указатель функции и соглашение о вызовах
float __stdcall (*pFunc)(float a, float b) = (float (__stdcall *)(float,float))0x411280; Как объявить указатель функции с соглашением о вызовах? Вышеупомянутое дает мне ошибку.
9446 просмотров

Является ли соглашение о вызовах компилятором или компоновщиком?
Когда мы помещаем _stdcall (вызывающему не нужно очищать стек) в прототип функции, заботится ли об этом компилятор или компоновщик?
217 просмотров
schedule 28.11.2022

Соглашения о вызовах x86_64 и кадры стека
Я пытаюсь разобраться в исполняемом коде, который GCC (4.4.3) генерирует для машины x86_64, работающей под управлением Ubuntu Linux. В частности, я не понимаю, как код отслеживает кадры стека. В старые времена, в 32-битном коде, я привык видеть этот...
7678 просмотров
schedule 16.04.2022

исправление сбоя режима выпуска libvlc с VC2010
Я использую libVLC в одном из своих приложений, которое я компилирую с помощью VC2010 (также пробовал VC2008), режим отладки моего приложения работает отлично, но как только я компилирую в режиме выпуска и пытаюсь вызвать libVLC, я получаю сбой. Я...
1562 просмотров

Соглашения о вызовах в Visual Studio
У меня есть fortran DLL, построенная в соответствии с соглашением CVF, и мой код на С++, созданный с использованием соглашения о вызовах cdecl, чтобы получить то, что ему нужно, из моей DLL. Я проверил свои файлы obj с кодом С++, и символы '_ imp...
1587 просмотров

Как реализованы переменные аргументы в gcc?
int max(int n, ...) Я использую соглашение о вызовах cdecl , когда вызывающий объект очищает переменную после возврата вызываемого объекта. Мне интересно узнать, как работают макросы va_end , va_start и va_arg ? Передает ли вызывающая...
17622 просмотров

Безопасный вызов интерфейса, реализация не безопасного вызова
У меня есть интерфейс для использования по технологии DCOM. Все методы, определенные в интерфейсе, имеют директиву safecall . Однако на стороне клиента я хочу отразить этот объект в TObject, чтобы избежать перехода через интерфейс каждый раз,...
583 просмотров
schedule 25.04.2022

Где документирован ABI для x86-64 System V?
X86-64 System V ABI (используется во всем, кроме Windows) раньше размещался по адресу http://x86-64.org/documentation/abi.pdf , но этот сайт теперь отключен от Интернета. Есть ли новый авторитетный источник для документа?
25760 просмотров

Что мешает вызываемому объекту очистить стек?
В рамках расширения моего учебного плана я медленно спускаюсь по лестнице абстракции программирования. Сейчас я хорошо владею C и готовлюсь к написанию некоторого ассемблера (в частности, ARM-ассемблера). Я столкнулся с темой соглашений о вызовах,...
2066 просмотров
schedule 02.03.2023

Почему метод GObject по-прежнему вызывается, даже если аргументы обратного вызова не совпадают с аргументами в XML?
Предположим, у меня есть такой метод <interface name="org.Test.ChildTest"> <!-- set_age(guint32 new_age): sets new age --> <method name="set_age"> <arg type="u" name="new_age" direction="in"/>...
275 просмотров
schedule 27.10.2022

Куда и почему должен указывать указатель кадра x64? (Windows x64 ABI)
Я читал длинный каталог очень хороших статей по Windows x64 ABI. Очень второстепенным аспектом этих статей является описание указателя фрейма. Общая суть состоит в том, что, поскольку правила стека вызовов Windows x64 настолько жесткие, выделенный...
2634 просмотров

Является ли `extern C` частью типа функции?
Я не вижу никаких комментариев в стандарте, кроме вещей, связанных со связью. Хотя в стандарте ничего не говорится о соглашении о вызовах, в реальном мире соглашения о вызовах могут различаться между C и C++, поэтому я ожидал, что типы функций C и...
576 просмотров
schedule 03.09.2022

Конфликтующие атрибуты типа, указанные для виртуального деструктора
Следующий отрывок ранее компилировался под Borland C++, MSVC и OpenWatcom: class aaa { virtual _fastcall ~aaa(); }; class bbb:public aaa { }; Он не компилируется под gcc/g++ (MinGW 4.8.0). Ошибка: probz.cpp:7:7: error: conflicting...
688 просмотров

Соглашения о вызовах с составными типами дат
Я понимаю соглашения о вызовах для передачи 32-битных и 64-битных целых чисел (и указателей), чисел с плавающей запятой и удвоений для 64-битного кода для Microsoft и System V AMD64 ABI. Но мне непонятно, какие существуют соглашения о вызовах для...
90 просмотров
schedule 26.02.2023

Имена регистров ABI для соглашения о вызовах RISC-V
Я смущен именами регистров RISC-V ABI. Например, таблица 18.2 в «Руководстве по набору команд RISC-V, том I: ISA уровня пользователя, версия 2.0» на стр. 85 указывает, что указатель стека sp является регистром x14 . Однако инструкция addi...
3676 просмотров

Выбор конкретных регистров для внешних вызовов
Я новичок в сборке и пытаюсь научиться самому. До сих пор я узнал, что в зависимости от количества аргументов, передаваемых от вызывающего к вызываемому, если нужно передать только небольшое количество аргументов, вместо операций push / pop...
58 просмотров