![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
В чем может быть ошибка? Пробую экспортировать класс из DLL явной компоновкой. Просьба другие способы компоновки не предлагать)))
В общем сама проблема состоит в том, что при завершении программы вылазиет: Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. Функции в функции main выполняются нормально, но при достижении system("PAUSE"); вылетает данная ошибка. Вот исходники: Библиотека DLL: DLL.h Код:
Код:
Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
О забыл еще файл:
Ext.def Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Вы пытаетесь вызвать метод класса как обычную функцию - тогда сделайте чтоб указатель Demo был указателем на член функцию класса.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
Точно спасибо большое заработало.
Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
То, что вы сделали сейчас можно было сделать со старым кодом объявив функцию Demo статической. То, что у вас получилось сейчас ето клас, в котором есть указатель на функцию - особого смысла в этом нет. Не путайте указатель на функцию с указателем на член-функцию - это две очень большие разницы!
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
Тогда если это указатель на функцию, то как объявить указатель на член-функцию из DLL
способ void(Test::*Demo)() не прокатит. Т.к main не будет знать о том что существует класс Test.
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Последний раз редактировалось kineziz; 16.07.2012 в 14:56. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Тогда забудьте обо всем, ибо кроме всего прочего, для вызова член-функции класса нужен и существующий на объект данното класса. Вернитесь к первоначальному варианту кода, сделайте функцию Demo static и все
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Run-Time Check Failure #2 - Stack around the variable 'map' was corrupted | Zugelman | Общие вопросы C/C++ | 4 | 26.04.2012 08:39 |
Ошибка Run-Time Check Failure #2 - Stack around the variable 'tmp' was corrupted. | borodin76 | Общие вопросы C/C++ | 1 | 16.04.2012 09:35 |
Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted. | Gidross | Общие вопросы C/C++ | 9 | 28.12.2010 15:22 |
Run-Time Check Failure #3 | Xe[N]o | Общие вопросы C/C++ | 2 | 27.11.2010 09:01 |
run-time check failure #2-stack around the variable 't' was corrupted | Despar | Общие вопросы C/C++ | 1 | 13.05.2010 08:33 |