Могу ли я использовать более новые версии Visual Studio для «старых» вещей? - PullRequest
4 голосов
/ 31 марта 2010

У меня есть несколько библиотек DLL на базе ATL / COM, на которых я использую Visual C ++ 6.0. Мне требуется пара «старых» вещей из сгенерированных DLL:

(1) Они должны быть совместимы с проектами, разработанными в Visual Basic 6.0 (старый VB6, категорически не VB.Net).

(2) Они должны быть совместимы со старыми операционными системами - минимум Windows 98 SE. Чтобы было ясно, я имею в виду, что они должны работать на таких ОС, а не то, что мне нужно было бы разрабатывать их на машине с такой ОС.

Мне надоело Visual Studio 6.0. О переходе на Dot Net (или любом другом существенном изменении, подобном этому) в настоящее время не может быть и речи, поэтому я должен продолжать использовать VB6. Но могу ли я переключиться на более новую версию Visual Studio C ++ с минимальными усилиями (т. Е. С минимальной необходимостью перекодировки)?

Если так, есть ли какие-то "ошибки", которых я должен остерегаться?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 31 марта 2010

Различные версии VS.Net могут в какой-то степени открывать старые проекты .Net, но ни одна из них не может открыть что-либо до .Net, включающее 6.0 любого языка.

Вы должны быть в состоянии создать новый проект C ++ в одном из приложений .Net VS и перестроить там свой проект C ++, и он должен работать, потому что неуправляемый код C ++ не требует времени выполнения .Net (и он по-прежнему компилируется в машинный код), но я давно не делал много C ++, поэтому я не уверен на 100%, что он будет работать.

0 голосов
/ 31 марта 2010

Да, но это слегка больно. Вот почему большинство магазинов придерживаются VC6. Я признаю, что не проверял библиотеки DLL COM в Windows 98, но еще в NT 4.0 с Visual Studio 2005.

Я бы хотел подчеркнуть, что нет минимальных усилий. В зависимости от того, как написан ваш код, преобразование может быть довольно болезненным. В одном проекте поиск и замена исправили 9 из 10 проблем. YMMV. Возможно, вам придется переписать некоторые из низкоуровневых COM-линий.

...