Вызов DLL VS2010 C++ из VB в Visual Studio 6

Это мой первый вопрос в Stack Overflow, и он звучит так: я реализую некоторые алгоритмы на C++ для компании, которая будет использовать их как DLL из Visual Basic в Visual Studio 6 (пакет обновления 6). Все вышеперечисленное (сборка в виде DLL, возможность вызова из VB, VS6) является обязательным и не является чем-то, что я могу изменить. Мой подход до сих пор (поскольку меня попросили доставить код, «компилируемый» в VC6), заключался в том, чтобы сделать исходную реализацию в VS2010 (со стандартами кода C++98), портировать и скомпилировать код как DLL в VC6, сделать функциональные оболочки , и, наконец, сделать "вызывающие функции" в VB, обращаясь к коду DLL. Если бы я мог использовать Boost::Geometry (например, создать функцию-оболочку, которая выполняет объединение полигонов, не раскрывая механизм шаблона), моя жизнь была бы намного лучше, но я не могу скомпилировать ее в VC6, поэтому вот что я прошу : Может ли C++ DLL, созданная в VS2010, быть вызвана из Visual Studio 6? Есть ли какие-нибудь советы или подводные камни? Я просто хочу использовать недавно созданные, полностью протестированные, заслуживающие доверия положительные качества C++ в качестве независимых библиотек, которые получателю не нужно будет отлаживать (по крайней мере, я не думаю, что они планируется отлаживать Boost).


person Community    schedule 07.12.2011    source источник
comment
Есть компания, которая все еще разрабатывает новый код для Visual Studio 6?!?   -  person Adam Rosenfield    schedule 08.12.2011
comment
это очень легкая IDE...   -  person JosephH    schedule 08.12.2011
comment
Короче говоря, это выполнимо, но вам нужно будет экспортировать интерфейс в стиле C.   -  person PeskyGnat    schedule 08.12.2011
comment
Просто глядя на экран VC6 впадаешь в депрессию, но Джозеф Х прав. @PeskyGnat Значит, я, должно быть, делал что-то не так в своих недавних попытках, спасибо за устранение неопределенности, это позволяет мне работать более сосредоточенно   -  person    schedule 08.12.2011
comment
Выделенный жирным шрифтом вопрос не имеет большого смысла, VS6 не вызывает библиотеки DLL. Я предполагаю, что они просят вас написать COM-сервер, который они могут использовать из программы VB6. Возможно, COM скрывает реализацию, поэтому версии VS не имеют значения. Но им, кажется, нужен код, который компилируется в VS6. Так что забудьте все, что было создано за последние 13 лет, оно вряд ли скомпилируется. Вам лучше пойти по магазинам за лицензией VS6 (очень трудно найти) и взимать с них плату за руку и ногу.   -  person Hans Passant    schedule 08.12.2011
comment
Я предполагаю, что вы просто хотите обернуть какой-то недавний код, который может компилироваться только на последних компиляторах, во что-то более «устаревшее» приложение, которое можно было бы использовать, а не во что-то, что можно использовать из самой IDE VB6.   -  person PeskyGnat    schedule 08.12.2011


Ответы (1)


Я бы предложил создать компонент ActiveX с использованием ATL, чтобы вы могли просто добавить их в качестве ссылок в VB6.

person JosephH    schedule 07.12.2011