Описание тега stdcall

Anything related to the `stdcall` calling convention, i.e. one of the common subroutine calling conventions used on systems with x86 architecture.
1 ответ

Могу ли я избежать g++ окружить _stdcall строкой __attribute__

Я использую MinGW g ++ для предварительной обработки моего файла, который имеет следующую функцию: [call_as(ReadAt)] HRESULT _stdcall RemoteReadAt( [in] ULARGE_INTEGER ulOffset, [out, size_is(cb), length_is(*pcbRead)] byte *pv, [in] ULONG cb, [out] …
06 июл '16 в 22:35
2 ответа

Почему GCC использует указатель кадра, когда я вызываю функции Win32 с аргументами?

Когда я компилирую 32-битный код C с GCC и опцией -fomit-frame-pointer, указатель кадра (ebp) не используется, если моя функция не вызывает функции Windows API с помощью stdcall и по крайней мере один параметр. Например, если я использую только GetC…
25 июл '14 в 18:25
1 ответ

Как сделать stdcall из Go

У меня есть указатель на интерфейс COM и я хотел бы взять указатели на функции из его виртуальной таблицы и сделать вызовы метода. Для этого мне нужно сделать вызовы метода stdcall. В Go, как я могу сделать вызов с конвенцией stdcall или сделать выз…
22 июл '12 в 02:18
1 ответ

Присваивание функций std::function с одинаковой сигнатурой, но другое соглашение о вызовах не выполняется

Следующий компилируется и прекрасно работает с флагами mingw 4.7.2 и -m64. но с -m32 или с любым 32-разрядным выпуском mingw он не скомпилируется. это ошибка или мне не хватает флага компилятора? #include <iostream> #include <functional>…
31 янв '13 в 13:01
1 ответ

Почему MSDN или VS2015 не объявляют методы IUnknown с соглашением __stdcall?

Извиняюсь, если этот вопрос немного не сфокусирован. Я работаю с COM, пишу несколько простых COM-серверов и объектов для сообщества Visual Studio 2015 под Windows 10. Все COM-объекты должны реализовывать интерфейс IUnknown. IDE VS2015 предложит реал…
04 июл '16 в 18:03
1 ответ

QT - Сторонний обратный вызов не перезванивает?

Я создал тестовое приложение для сторонней библиотеки, которую я использую, она прекрасно компилируется, но, похоже, никогда не ударит __stdCall WriteDone. из примера кода это выглядит как эта функция if(cmcd->BuildISOImage(isoName, &CMCDBurn…
16 июл '13 в 00:12
2 ответа

Использование GetProcAddress, когда имя может быть оформлено

Как правильно использовать GetProcAddress() на 32-битной DLL? На win32 существует три соглашения о вызовах: cdecl, stdcall и fastcall. Если функция в DLL foo они будут украшать имя следующими способами _foo, _foo@N а также @foo@N, Но если автор dll …
1 ответ

COM-сервер: ESP не сохраняется через вызов функции при вызове метода интерфейса

Я в процессе реализации COM-сервера в EXE-файл. Если быть точным, я добавляю интерфейс COM в существующее приложение. с конечной целью автоматизации приложения. Первый компонент и интерфейс (пока с одним методом) в основном на месте. Я могу встроить…
2 ответа

GCC экспортирует оформленное имя функции только из dll

У меня есть DLL, он экспортирует функцию... extern "C" int __stdcall MP_GetFactory( gmpi::IMpUnknown** returnInterface ) { } Я компилирую это с помощью компилятора Code::Blocks GCC (V3.4.5). Проблема: в результате dll экспортирует оформленное имя фу…
24 мар '10 в 05:36
2 ответа

Почему Microsoft выбрала stdcall в качестве соглашения об API?

Есть ли веская причина? Являются ли их внутренние функции (не экспортируемые) стандартным соглашением?
24 авг '10 в 10:56
2 ответа

Передача 64-битных функций C++ с "различными" соглашениями о вызовах в качестве параметров дает неоднозначную ошибку

Моя цель - легко извлечь прототип произвольной функции с соглашениями о вызовах __cdecl и __stdcall. Он отлично работает в 32-битной. Единственное, что меняется, это соглашение о вызовах в параметрах моей функции шаблона. Согласно Википедии:"При ком…
05 май '16 в 17:12
1 ответ

GCC игнорирует атрибут соглашения о вызовах

Кто-нибудь знает, почему это не работает? void test() [[stdcall]] { std::cout << "Hello World" << std::endl; } когда я пытаюсь скомпилировать диалект C++11, он говорит: msgstr "предупреждение: директива атрибута 'stdcall' игнорируется [-…
09 май '14 в 21:58
3 ответа

При использовании PInvoke зачем использовать __stdcall?

Я использовал PInvoke, чтобы мое приложение C# вызывало функции C++, которые я написал. Теперь я постоянно и везде слышу, что мне нужно определить эти внешне доступные функции с помощью __stdcall условность. Мой вопрос: почему? До сих пор я случайно…
2 ответа

Не удалось найти точку входа в процедуру axiom_attribute_create в библиотеке динамических ссылок

У меня есть проект на C, и я хочу скомпилировать его в CodeBlocks с MinGW. Я пытался связать необходимые библиотеки, но я получил неопределенная ошибка ссылки поэтому я искал и обнаружил, что библиотеки, которые я использовал, были скомпилированы с …
23 фев '15 в 11:57
1 ответ

Каковы правила расширения знака для вызова функций Windows API (stdcall)? Это необходимо для вызова WInAPI из Go, который строго относится к типам int

К сожалению, было одно, что я забыл, когда сделал этот ответ, и это то, в чем я не совсем уверен в себе, и что я не могу найти информацию для MSDN и Google и поиска переполнения стека. В API Windows есть несколько мест, где вы используете отрицатель…
03 июн '14 в 18:19
2 ответа

Ошибки компиляции log4cxx с __stdcall и Boost 1.47.0

Я буду очень рад, если вы поможете. Моя IDE VS2010. Я использую boost 1.47.0, особенно boost::asio. После нескольких дней разработки я решил добавить log4cxx. log4cxx должен изменить соглашение о вызовах на __stdcall Я неожиданно получил много ошибо…
02 ноя '11 в 12:35
3 ответа

Как мне скомпилировать boost, используя соглашение о вызовах __cdecl?

У меня есть проект, скомпилированный с использованием __cdecl соглашение о вызовах (msvc2010) и я скомпилировали boost, используя тот же компилятор, используя настройки по умолчанию. Проект связан с Boost, но я во время выполнения получил сообщение …
1 ответ

Может ли stdcall иметь переменные аргументы?

Насколько я знаю, только соглашение о чистом стеке вызывающей стороны может использовать переменные аргументы.Кстати, WinApi StringCchPrintfW объявлен так (я удалил SAL) __inline HRESULT __stdcall StringCchPrintfW ( STRSAFE_LPWSTR pszDest, size_t cc…
2 ответа

Вызов функций, предназначенных для потоков, обычно

У меня есть функция с прототипом DWORD WINAPI blah(LPVOID arg); Который должен был использоваться с CreateThread для многопоточного приложения. Я называю это с CreateThread без проблем. Но потом где-то в коде, я называю это нормально, просто бла (NU…
08 авг '10 в 19:04
0 ответов

Использование Delphi DLL с VS2010. "Не удалось найти точку входа функции _DataReady@0 в DSOLink.dll"

Я пытаюсь использовать цифровую сферу Vellman PCSU1000 в одном из моих проектов, которые я пишу на C++ в Visual Studio 2010. Для этого мне нужно использовать две библиотеки DLL, предоставляемые производителем устройства: DSOLink.dll и PCSU1000D.dll.…
11 май '13 в 14:18