Спецификация 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
Это должно охватывать все ваши базы. Ниже приведен образец HTML.
Попробуйте следующее:
<style type="text/css">
html, body { overflow:auto }
</style>
<head>
<title>My App</title>
</head>
<body id="bodyId" style="margin:0;" scroll="no">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div style="position: fixed; height: 100%; width: 100%">
<avn:Silverlight
ID="xamlHost"
runat="server"
Source="~/ClientBin/THE.xap"
MinimumVersion="x.x.xxxxx"
Width="100%"
Height="100%"
/>
</div>
</form>
</body>
</html>
Я использовал это и, похоже, работает хорошо. Необходимо получить размер "ed" для рендера.
private void LayoutRoot_LayoutUpdated(object sender, System.EventArgs e)
{
// Set the size of the SL object to the new rendered size of the Grid.
ResizeSilverlightOnject(this.LayoutRoot.RenderSize.Height);
}
private void ResizeSilverlightObject( double height )
{
HtmlPage.Window.Invoke( "ResizeObject", new object[] { height } );
}
Если вы пытаетесь определить высоту с помощью Validation Summary (немного не связанного с этим вопросом, но полезного), попробуйте следующее: В вашем Page.xaml.cs // сохраните исходную высоту в событии Page_Loaded
void Page_Loaded(object sender, RoutedEventArgs e)
{
SetupPage();
this.ValidationSummary.SizeChanged += new SizeChangedEventHandler(ValidationSummary_SizeChanged);
}
void ValidationSummary_SizeChanged(object sender, SizeChangedEventArgs e)
{
if (this.OriginalPageHeight == 0.0)
{
this.OriginalPageHeight = this.RenderSize.Height;
}
else
{
double expandSize = this.OriginalPageHeight + e.NewSize.Height;
ResizeSilverlightObject(expandSize);
}
}
EDIT: добавлена функция Javascript и функция cs
function ResizeObject(height) {
var host = document.getElementById("uploaderHost");
host.style.height = height + "px";
}
public void ResizeSilverlightObject(double height)
{
HtmlPage.HtmlWindow.Invoke("ResizeObject", new object[] { height });
}