Форум программистов, компьютерный форум CyberForum.ru

Чем отличается функция с __stdcall и без - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти суму ряда не понятное условие http://www.cyberforum.ru/cpp-beginners/thread1496761.html
Нужно найти конечную суму ряда, считать, что n уже ввели. Пересмотрел весь форум, подобное есть, но не совсем то.
C++ Макрос который создает класс Создал макрос который создает класс, но почему то он не работает, инициализация класса не происходит???? #include <iostream> using std::cout; //создадим свой макрос #define MY_MACROS(a, b) \ class a \ {\ public:\ int k;\ http://www.cyberforum.ru/cpp-beginners/thread1496759.html
C++ Ошибка при компиляции
Всем привет. Сценарий такой. Пишу код для проверки даты. Когда пытаюсь скомпилировать мне выдает ошибку Unable to perform link. Самое интересное то, что когда создаю новый проект, вставляю код и жму F9, то программа работает. Но стоит мне сохранить проект и закрыть, переоткрыть и попробовать перезапустить выдает ошибку. Среда RAD Studio Embarcadero XE5 #include <iostream> #include <string>...
C++ Какой формы процесс в памяти ?
Здравствуйте. Написал вот так: void shrub() { char array; int i = 0; try {while (true)
C++ Как правильно объявлять struct переменную? http://www.cyberforum.ru/cpp-beginners/thread1496742.html
Как правильно объявлять? str one или struct str one; #include <iostream> using namespace std; struct str { int a; int b; int c; };
C++ Структуры с указателями друг на друга Нужно написать программу для создания динамической конструкции из элементов структуры 2х типов (см. схему). Однако для этого нужно создать следующие структуры: struct obj { obj1 *p1; obj1 *p2; int num; }; struct obj1 подробнее

Показать сообщение отдельно
VIKT0R
8 / 8 / 2
Регистрация: 15.11.2011
Сообщений: 78
13.07.2015, 15:10     Чем отличается функция с __stdcall и без
Цитата Сообщение от DrOffset Посмотреть сообщение
Например, мы пользуемся WinAPI, например, есть некая API функция, которая принимает callback. И этот callback она ждет в соответствии с stdcall. Тогда функцию, которую мы делаем callback'ом, нужно обозначить как __stdcall, чтобы ее вызов внутри API функции был корректным.

ninja2, классический пример - оконная процедура. Макрос CALLBACK - как раз разворачивается в __stdcall.
Вот у меня тоже возникла проблема, подозреваю что из-за несоответствия соглашений о вызовах. То есть программа работала нормально до того, как в нее был добавлен диалог, в процедуру которого я передаю указатель на мой объект. Вроде нормально вызывается метод объекта, начинает выполняться, а потом на ровном месте (присвоение закрытому члену значения) молча перестает работать. В свойствах конфигурации в "Соглашении о вызовах" выставлено _cdecl(/Gd). Подскажите, в чем дело, и как с этим бороться?
 
Текущее время: 15:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru