Экспортный класс
От: lexer_lx Украина  
Дата: 24.09.07 05:57
Оценка:
Есть класс MyClass, экспортируемый из библиотеки.
В программе создаю его экземпляр и обращаюсь к методу:

  MyClass* pObj = new MyClass;
  pObj->Func();


Прохожу дебагом Func, все выполняется нормально, при выходе из Func в основной код все данные
экземпляра класса портятся.
В этой же программе используется еще одна экспортная библиотека классов, при этом она работает без проблем.
В другой программе MyClass работает без ошибок.
Все библиотеки и проект компилируется и линкуется без ворнингов.
Что здесь может быть не так и в какую сторону копать ?
Re: Экспортный класс
От: Smal Россия  
Дата: 24.09.07 06:29
Оценка:
Здравствуйте, lexer_lx, Вы писали:

_>Есть класс MyClass, экспортируемый из библиотеки.

_>В программе создаю его экземпляр и обращаюсь к методу:

_>
_>  MyClass* pObj = new MyClass;
  pObj->>Func();
_>


_>Прохожу дебагом Func, все выполняется нормально, при выходе из Func в основной код все данные

_>экземпляра класса портятся.
_>В этой же программе используется еще одна экспортная библиотека классов, при этом она работает без проблем.
_>В другой программе MyClass работает без ошибок.
_>Все библиотеки и проект компилируется и линкуется без ворнингов.
_>Что здесь может быть не так и в какую сторону копать ?
Копай в сторону:
1. Разное выравнивание.
2. Разные соглашения о вызовах.
С уважением, Александр
Re[2]: Экспортный класс
От: lexer_lx Украина  
Дата: 24.09.07 07:47
Оценка:
Здравствуйте, Smal, Вы писали:

S>Копай в сторону:

S>1. Разное выравнивание.
S>2. Разные соглашения о вызовах.

Выравнивание одинаковое.
Соглашения о вызовах — что имеется в виду ?

В боих библиотеках —
#define exported __declspec (dllexport)
Re: Экспортный класс
От: SenkraD Украина  
Дата: 24.09.07 07:52
Оценка:
Здравствуйте, lexer_lx, Вы писали:

_>Есть класс MyClass, экспортируемый из библиотеки.

_>В программе создаю его экземпляр и обращаюсь к методу:

_>
_>  MyClass* pObj = new MyClass;
  pObj->>Func();
_>


_>Прохожу дебагом Func, все выполняется нормально, при выходе из Func в основной код все данные

_>экземпляра класса портятся.
_>В этой же программе используется еще одна экспортная библиотека классов, при этом она работает без проблем.
_>В другой программе MyClass работает без ошибок.
_>Все библиотеки и проект компилируется и линкуется без ворнингов.
_>Что здесь может быть не так и в какую сторону копать ?

Посмотрите эту
Автор(ы):
Александр Шаргин


В статье рассматривается три способа подключения DLL к программе на Visual C++ — неявное подключение (implicit linking), явное подключение (explicit linking) и отложенная загрузка (delayed load) DLL. Для каждого способа демонстрируется использование переменной, функции и класса из подключаемой DLL. В разделе об отложенной загрузке также приводится дополнительная информация (описание обработки исключений и использования функций-ловушек).
статью может поможет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.