VC6 и VC7.0 dll
От: SunnyChild  
Дата: 10.03.05 20:18
Оценка:
Приложение пишется на VC6 а dll-ка на VC7.0 При обращении к длл прога валится. Мне интересно, возможно ли в принципе реализовать такую конструкцию? потому что если собирать обе части одним компилятором, всё работает нормально
Re: VC6 и VC7.0 dll
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 11.03.05 04:45
Оценка:
Здравствуйте, SunnyChild, Вы писали:

SC>Приложение пишется на VC6 а dll-ка на VC7.0 При обращении к длл прога валится. Мне интересно, возможно ли в принципе реализовать такую конструкцию?


да, должно работать даже если dll на delphi или Cbuilder

SC>потому что если собирать обе части одним компилятором, всё работает нормально


видимо у тебя есть ситуации, когда память выделяется в exe, а освобождается в dll или наоборот, в частном случае, когда CRT один и тот-же и используется из dll это прокатывает, во всех остальных — облом
Re: VC6 и VC7.0 dll
От: Leshi Россия  
Дата: 11.03.05 08:05
Оценка:
Здравствуйте, SunnyChild, Вы писали:

SC>Приложение пишется на VC6 а dll-ка на VC7.0

На сколько я помню, DLL без разницы на чем нарисован, главное, чтобы интерфейс общения совпадал. Если у тебя экспортируются только функции, то все должно работать. Если экспортируются классы, тогда в общем случае требуется использовать один и тот же компилятор, потому что разные версии по-разному экспортируют классы.

А как DLL-ку грузишь? LoadLibrary или неявно?
... << RSDN@Home 1.1.3 stable >>
Re[2]: VC6 и VC7.0 dll
От: SunnyChild  
Дата: 15.03.05 21:50
Оценка:
Здравствуйте, Leshi, Вы писали:

L>Здравствуйте, SunnyChild, Вы писали:


SC>>Приложение пишется на VC6 а dll-ка на VC7.0

L>На сколько я помню, DLL без разницы на чем нарисован, главное, чтобы интерфейс общения совпадал. Если у тебя экспортируются только функции, то все должно работать. Если экспортируются классы, тогда в общем случае требуется использовать один и тот же компилятор, потому что разные версии по-разному экспортируют классы.

L>А как DLL-ку грузишь? LoadLibrary или неявно?

Сорри, что не ответил сразу. А что имеется в виду под интерфейсом общения?
Используется LoadLibrary. У меня экспортируются функции, которые возвращают указатель на класс. Такая конструкция может быть совместима? В длл-ке используется STL, но наружу выведены только char* итд (это имеет в данном случае какое-либо значение?).
В принципе, я не особо обламываюсь, работаю под семёркой, а когда надо выдать новую версию, собираю длл-ку под шестёркой. Просто очень любопытно, как же всё это устроено
Re[2]: VC6 и VC7.0 dll
От: SunnyChild  
Дата: 15.03.05 21:59
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>видимо у тебя есть ситуации, когда память выделяется в exe, а освобождается в dll или наоборот, в частном случае, когда CRT один и тот-же и используется из dll это прокатывает, во всех остальных — облом


А можно поподробнее? А то я не совсем знаю предмет. В каких случаях можно выделять память в dll и убивать в exe, а в каких нет? И раз уж на то пошло, что такое CRT?
Может посоветуете какие-нибудь полезные сслыки по теме?
Re[3]: VC6 и VC7.0 dll
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 16.03.05 04:27
Оценка:
Здравствуйте, SunnyChild, Вы писали:

SC>А можно поподробнее? А то я не совсем знаю предмет. В каких случаях можно выделять память в dll и убивать в exe, а в каких нет?


http://rsdn.ru/Forum/Message.aspx?mid=659717
Автор: romstyop
Дата: 31.05.04


SC>И раз уж на то пошло, что такое CRT?


http://gzip.rsdn.ru/article/cpp/crt.xml
Автор(ы): Виталий Брусенцев
Дата: 19.01.02
Статья посвящена вопросам оптимизации размера выполняемых модулей, генерируемых различными
компиляторами C++ (основное внимание уделено MS Visual С++). С этой целью рассматриваются особенности Библиотеки исполнения C/C++ и ее реализаций, а также процессы компиляции и компоновки приложений. Приведены практические приемы, позволяющие в ряде случаев уменьшить размер приложения до величины 3-4 килобайта.


SC>Может посоветуете какие-нибудь полезные сслыки по теме?


http://gzip.rsdn.ru/article/cpp/stlproblem.xml
Автор(ы): Роман Хациев
Дата: 27.02.2002
Если вы пытались работать с экземплярами классов STL, передавая их в DLL, или получая оттуда, а потом бросили это занятие из-за непонятных ошибок, возникающих в вашей программе, то эта заметка для вас. Даже если видимых проблем в вашей программе нет, то все равно прочитайте эту заметку, чтобы знать что делать, когда они появятся :)
Re[3]: VC6 и VC7.0 dll
От: Leshi Россия  
Дата: 16.03.05 06:59
Оценка:
Здравствуйте, SunnyChild, Вы писали:

L>>А как DLL-ку грузишь? LoadLibrary или неявно?


SC>А что имеется в виду под интерфейсом общения?

Я не знать как это есть по-русски <читать с ностранным акцентом>. Я имею в виду, что представление классов (объектов классов) в разных компиляторах разное. И вполне вероятно, что при экспорте могут возникнуть недопонимания.

SC>Используется LoadLibrary.

Валится именно на LoadLibrary? Или на чем-то другом?

SC>У меня экспортируются функции, которые возвращают указатель на класс. Такая конструкция может быть совместима?

Такая конструкция может быть совместима, а может и не быть. Скорее всего именно из-за нее валится.

SC>В длл-ке используется STL, но наружу выведены только char* итд (это имеет в данном случае какое-либо значение?).

STL внутри и char* наружу должно жить, имхо.
... << RSDN@Home 1.1.3 stable >>
Re: VC6 и VC7.0 dll
От: Павел Кузнецов  
Дата: 25.03.05 15:34
Оценка:
SunnyChild,

> Приложение пишется на VC6 а dll-ка на VC7.0 При обращении к длл прога валится. Мне интересно, возможно ли в принципе реализовать такую конструкцию?


В принципе — возможно. Вопрос в используемых возможностях, и на чем именно "валится".
Posted via RSDN NNTP Server 2.0 alpha
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.