64-битный процесс не может напрямую вызывать 32-битную библиотеку в своем процессе. Вам нужно использовать другой подход для общения с 32-битной библиотекой.
Примечание: Если связь должна происходить на одном компьютере (значит, ваше 64-битное приложение и 32-битная библиотека будут находиться на одном компьютере), в этом случае первые два варианта будут быть лучшей работой с.
Надеюсь, эта информация поможет и поможет вам в дальнейшем.
Счастливое кодирование ...
Спецификация UnifiedPOS (включая OPOS) поддерживает только 32-разрядную версию.
Скачать текущую версию 1.14.1 UnifiedPOS
Страница A-1
Цели OLE для Retail POS (или " OPOS ") включает в себя:
blockquote>
- Определение архитектуры для доступа к POS-устройствам на основе Win32.
- Определение набора интерфейсов POS-устройств, достаточных для поддержки ряда POS-решений.Страница A-3
CO - это стандартный ActiveX (то есть, OLE 32-битный) элемент управления, который невидим во время выполнения.
blockquote>Common CO поддерживает только 32 бита.
MCS: OPOS Common Control Objects - текущая версияЯ экспериментально создал Common CO, который поддерживает 64-битную версию, но это неформально.
kunif / OPOS-CCOЕсли вы используете OPOS в качестве сервисного объекта в POS для .NET, вам нужно управлять им с 32-битным.
Для 32-битного exe / dll, который работает в 64-битной ОС, соответствующие данные реестра разделяются под узлом WOW6432 в разных местах.
Однако некоторые реестры разделены на 64/32, некоторые реестры связаны с 64/32 и т. Д.Хотя поставщики устройств могут поддерживать 64-битную систему независимо, считается, что их немного.
Возможны следующие предложения.
- Разделите приложение на два или более процессов и свяжите их посредством межпроцессного взаимодействия.
Основное приложение, запущенное в 64-битном процессе.
Приложение управления вводом / выводом (OPOS), работающее в 32-битном процессе.- Использовать только оборудование поставщика и OPOS, которые независимо поддерживают 64-битную версию.
- Использовать 32-битный OPOS из 64-битного приложения, используя методы, подобные описанным в комментариях.
Кроме того:
Дополнительная информация о методе «3». как следует.DLL-суррогаты
Требования к DLL-серверу
Использование системного суррогата
Написание пользовательского суррогатаИнтерфейсы, которые не являются удаляемыми (например, для последних OCX), не будут работать с суррогатом системы. Пользовательский суррогат может обернуть интерфейсы библиотеки DLL своей собственной реализацией и использовать DLL прокси / заглушки с удаленным определением IDL, которое позволит удаленному интерфейсу.
blockquote>Доступ к 32-разрядным библиотекам DLL из 64-разрядного кода в статье StackOverflow
Доступ к 32-разрядным библиотекам DLL из 64-разрядного кода [118 ] Оригинальная статьяКак создать суррогатный COM-экземпляр?
Хостинг .NET DLL в качестве внепроцессного COM-сервера (EXE)
DllSurrogate
Перечисление REGCLS