Задача управлять устройством подключенным к USB-порту. Драйвера устройства могут быть 32 и 64 битными, заранее не известно какие стоят.
Управляется железка через DLL-обертку над драйвером, все API функции устройства в 32 и 64 битной версии идентичны, только разрядность DLL-обертки отличается. Протокол взаимодействия текстовый и DLL-обертка драйвера вызывает функции приложения через адреса переданные в нее. С 32-битной версией DLL проблем нет. Но как заставить работать VB код с 64 битной DLL?
Пока придумал написать на C++ 64-битное приложение, VB код запускает его в фоновом режиме и устанавливает соединение с ним через пайп. Есть некий текстовый протокол, который описывает взаимодействие VB и C++ кода, все CallBack функции которые вызывает DLL-обертка в этом же С++ фоновом приложении. По пайпу гоняются только текстовые строки. Но как-то все неуклюже выходит. Может есть более простой путь?