Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2012, 16:19   #1
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию Как dll возвращает значение в программу написанную на С++?

Допустим имеется динамическая библиотека(dll) написанная на fasm, я ее цепляю к С++ и вызываю нужную функцию как int F = Factorial(3); мне получается в dll в стек(в размере (int)) записывать значение которое нужно вернуть?
WebbMan вне форума Ответить с цитированием
Старый 04.12.2012, 16:49   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Гуглите "соглашение о вызове". Соглашения о вызове для вызывающей и вызываемой функции должны совпасть, иначе получится нехорошо.
Abstraction вне форума Ответить с цитированием
Старый 04.12.2012, 17:44   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

http://en.wikipedia.org/wiki/Applica...nary_interface
http://en.wikipedia.org/wiki/X86_calling_conventions
waleri вне форума Ответить с цитированием
Старый 04.12.2012, 18:03   #4
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию

Я использую соглашение вызова cdecl, то есть и принимать надо также по правилам cdecl... А вот оно что
WebbMan вне форума Ответить с цитированием
Старый 04.12.2012, 18:25   #5
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию

То есть принцип действия таков(для cdecl): Вначале вызывается функция, она получает нужный результат, записывает его в регистр eax, потом чистится стек, управление с dll передается нашей программе, программа считывает данные с eax и присваивает их нашей переменной?
WebbMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить программу, написанную на Java? Graf Xandr Помощь студентам 2 16.12.2011 10:26
Как скомпилировать программу написанную в Visual Basic maldinito Помощь студентам 1 15.08.2010 23:10
Как протестировать написанную программу? Сергей089 Общие вопросы Delphi 6 05.12.2008 18:01
Как запустить программу, написанную на С#? Winter Общие вопросы .NET 1 18.11.2007 13:39