| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > проблема с dll, скомпилированной в Microsoft VS |
| Автор: stas87 20.10.2009, 12:58 |
| здравствуйте! помогите решить проблему. есть dll-ка, скомпилированная на продукте фирмы Майкрософт(VC++ or .NET) в dll встрены классы. при обращении из среды разработки от Майкрософта - все работает нормально, все функции срабатывают. при попытке вызвать те же самые методы из Borland C++ Builder 6.0 вылазит Access Violation, хотя адреса функций в dll-ке получает верные. Ошибка выпадает где то внутри самой библиотеки. уже неделю мучаюсь, помогите пожалуйста. |
| Автор: Anikmar 20.10.2009, 14:01 |
| ИМХО. Импортировать из DLL классы занятие нудное, противное и неблагодарное. |
| Автор: stas87 20.10.2009, 15:43 |
| dll написана сторонней фирмой, исходников естесственно нет((, а борланд выбран из за того, что только на него есть лицензия |
| Автор: xvr 21.10.2009, 12:31 |
| dll от VS с Borland'ом могут быть не совместимы, даже безо всяких классов (были преценденты). Проблема в разных CRT у основного приложения и DLL. В результате грузятся обе CRT (от MS и Borland'а), после чего они начинают драться из за общих ресурсов (типа stdin, stdout, и пр потроха libc), что обычно заканчивается крахом |
| Автор: stas87 21.10.2009, 15:18 |
| ладно, спасибо. скачал бесплатный компилятор от майкрософта - попробую на нем делать |
| Автор: Anikmar 21.10.2009, 16:57 |
| Если в параметрах передаются структуры то может быть дело в банальном выравнивании. |
| Автор: stas87 23.10.2009, 05:42 | ||||
| на бесплатном компиляторе тоже не работает(( может какие особые настройки проетка надо указать? вот заголовочный файл:
тут вызывающий код:
в полных майкрософтовских студиях pRoot = hm->getUnit("DEMO-DMI6000B"); возвращает значение, на борланде и VC++ 2008 Express Edition возвращает NULL |
| Автор: xvr 23.10.2009, 06:43 |
| Тогда только дебагер |
| Автор: stas87 23.10.2009, 22:23 |
| дебагер - дело довольно геморойное.. тем более когда отсутствуют исходники длл..(( |
| Автор: stas87 28.10.2009, 09:18 |
| метод должен возвращать ссылку на класс, при успешном его выполнеии |