![]() |
|
|
![]()
|
|
| ICEMAN3141592 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 29.12.2009 Репутация: нет Всего: нет |
Здравствуйте. Есть сервер, использует динамические библиотеки от MS Studio 2003, перехожу на MS Studio 2010, есть исходники. Если пересобрать проект, "новые" dll- ки схиляют для сервера. Какие могут быть варианты вообще ? Я честно говорю, что во внутренней структуре dll не разбираюсь. Надеюсь на Вашу помощь и профессионализм.
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 2 Всего: 135 |
Если из сервера в длл (или наоборот) передаются stl-ные классы (или даже указатели на них), то с огромной долей вероятности работать не будет
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| ICEMAN3141592 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 29.12.2009 Репутация: нет Всего: нет |
Во общем, есть сервер, не я его писал, даже не знаю устройство внутреннее его, НО он принимает dll, скомпилированную от VS 2003, если я исправлю исходники, из которых составляется эта dll в VS 2010, то примет "новую" dll сервер ? Читал на разных постах, что есть вар, что нет, но в большинстве случаев нормально, но я же не могу полагаться на то, что прокатит до поры до времени.
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 2 Всего: 135 |
ICEMAN3141592, я тебя понял с первого раза. Перечитай моё сообщение выше:
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| ICEMAN3141592 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 29.12.2009 Репутация: нет Всего: нет |
1. Тут высказывают надежду на stlport (ни разу о таком не слышал), если он используется, то переносимость будет соблюдаться ?
2. Скажите, как лучше поступить, если лицензий на 2003 нету, а поддерживать проект нужно... 3.
Извините, модераторы с другого форума не поняли сразу проблемы, и я подумал, что пишу о "сложных" вещах Добавлено через 8 минут и 48 секунд Посмотрел в *.vcproj о stlport, в файле слова такого нету Добавлено через 13 минут и 3 секунды Решили посмотреть, передаются ли stl-контейнеры или нет, с помощью midl компиллятор, преобразует интерфейсы из IDL в интерфейсы на C, после этого преобразованая проанализировать все вызовы будет нетрудно. Он нагенерит огромный файл Исходников сервера нету. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Наличие\отсутствие stl-вызовов и версия компилятора, под которым это все собиралось, никак не связаны. stl либо используется либо нет. Причем, если используется локально (для собственных нужд и нигде не светится в интерфейсах импортируемых функций), то и бог с ней.
Ты бы уже давно скомпилировал библиотеку да проверил. Кстати, совершенно не факт, что код под 2003 так уже безболезненно скомпилируется под 2010. И даже если скомпилируется, то будет ожидаемым образом работать - есть ряд критичных изменений в поведении компилятора, при переходе с 2003 на более старшие. Но это с совместимостью библиотек не очень связано. Однако, если нужно переходить на новый компилятор и обеспечивать дальнейшее развитие \ поддержку, то вариантов особых нет. Кроме как остаться на 2003. Что касается совместимости, то проблемы могут быть в других используемых библиотеках, скажем, если используются динамические версии CRT и MFC. Опять же, эти проблемы возникнут, только если соответствующие объекты "пересекают" границы своих модулей. Скажем, память динамически выделяется в сервере (одна версия CRT), а освобождается в клиенте (другая версия CRT). Или наоборот. Вот тогда проблемы точно будут. Но грамотно спроектированные (для раздельной жизни) модули таких зависимостей содержать не должны. Нужно посмотреть на интерфейс (импортируемые функции). Добавлено через 3 минуты и 36 секунд Так у тебя COM-сервер? Тогда проблем быть не должно, разве что авторы сервера совсем уж м..ки. Никаких параметров типа stl-контейнеров в IDL быть не может. И чего на с-файл-то смотреть, гораздо проще смотреть сразу на IDL. Он как минимум компактнее. -------------------- ... |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 2 Всего: 135 |
Поддерживаю. Без этого сказать точно "всё будет работать" или "точно работать не будет" сказать сложно. Показывай интерфейс. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| ICEMAN3141592 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 29.12.2009 Репутация: нет Всего: нет |
Да когда я писал проект на VS 6.00, а потом пришлось переписывать на VS 2005, проблем было куча Так если с совместимостью проблем нету, почему бы не продолжить на 2010 ?
Это один из примеров, есть файлы *.idl от MS, имеются файлы проекта xercesc. Мне нужны в них всех проверить наличие шаблонов STL ? СПАСИБО Earnest, borisbn за помощь, время которое уделяете. Это сообщение отредактировал(а) ICEMAN3141592 - 13.9.2011, 16:06 |
|||
|
||||
| ICEMAN3141592 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 29.12.2009 Репутация: нет Всего: нет |
Есть еще один файл такого же типа и все. Как я понял, передаются интерфейсы (или нет ?). Т.е. если я проект перенесу на 2010, скомпилирую dll, сервер, по идеи, должен будет с ней работать ? Это сообщение отредактировал(а) ICEMAN3141592 - 13.9.2011, 15:50 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 2 Всего: 135 |
Судя по всему, в интерфейсе длл присутствуют только простейшие типы (LPSTR, HRESULT, DWORD и т.п.).
Упаковка есть тип вызова прописан явно в общем, интерфейс связи длл и сервера проработан хорошо. Должно всё отработать... Гарантию, конечно, не дам, но впечатление, что всё будет ОК Добавлено @ 16:37 Ещё нужно убедиться, что в настройках проекта 2003 и вновь создаваемого под 2010 установлена одинаковая кодировка: Not Set, Unicode или Multi-Byte. Т.е. нужно посмотреть, что выставлено в проекте 2003, и выставить такую же в 2010. Это сообщение отредактировал(а) borisbn - 13.9.2011, 16:40 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| ICEMAN3141592 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 29.12.2009 Репутация: нет Всего: нет |
Так, "одинаковая кодировка: Not Set, Unicode или Multi-Byte."- ясно, что - нибудь еще ?
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 2 Всего: 135 |
Собственно, блюдо практически готово - др. словами - пора пробовать
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Я же уже говорила, что если интерфейс чисто COM-овский, никаких stl и прочих классов там быть не может. Только встроенные типы, вариант, да простые структуры, причем определенные где-то там же.
Насчет совместимости, есть еще один параметр компиляции, который надо проверить. "Treat wchar as buit-in type", как-то так называется, в районе Code generation или Language. Тоже должен быть одинаковым. А COM-строки (BSTR), если не ошибаюсь, всегда UNICODE... -------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |