|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.07.2012, 00:20 | #1 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Run-Time Check Failure #0
В чем может быть ошибка? Пробую экспортировать класс из 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 Код:
Код:
Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
16.07.2012, 00:28 | #2 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
О забыл еще файл:
Ext.def Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
16.07.2012, 08:50 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Вы пытаетесь вызвать метод класса как обычную функцию - тогда сделайте чтоб указатель Demo был указателем на член функцию класса.
|
16.07.2012, 13:31 | #4 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Точно спасибо большое заработало.
Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
16.07.2012, 13:41 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
То, что вы сделали сейчас можно было сделать со старым кодом объявив функцию Demo статической. То, что у вас получилось сейчас ето клас, в котором есть указатель на функцию - особого смысла в этом нет. Не путайте указатель на функцию с указателем на член-функцию - это две очень большие разницы!
|
16.07.2012, 14:38 | #6 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Тогда если это указатель на функцию, то как объявить указатель на член-функцию из DLL
способ void(Test::*Demo)() не прокатит. Т.к main не будет знать о том что существует класс Test.
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Последний раз редактировалось kineziz; 16.07.2012 в 14:56. |
16.07.2012, 16:30 | #7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Тогда забудьте обо всем, ибо кроме всего прочего, для вызова член-функции класса нужен и существующий на объект данното класса. Вернитесь к первоначальному варианту кода, сделайте функцию 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 |