CipherLab 8001 проблемы с stdCipherLab.dll или есть .Net Source Sample?

Страницы: 1
RSS
CipherLab 8001 проблемы с stdCipherLab.dll или есть .Net Source Sample?, Обсуждение: CipherLab 8001 проблемы с stdCipherLab.dll или есть .Net Source Sample?
 
Добрый день.
Наша компания внедряет в свое програмное обеспечение функционал работы с карманным терминалом сбора данных CipherLab 8001.

Удалось выполнить ряд стандартных операций, не требующих передачи параметров, таких как: OpenComm, CloseComm, GetCurrentState.
Запись в терманал и считывание не проходит.

В примере на сайте используется VB6 который понимает тип данных Any, используемый в описания функций Dll. При конвертации проекта под .Net приходится исправлять большой обьем кода.

Если у Вас имеется .Net Source Sample (на любом из языков .Net) мы будем Вам очень признательны.
 
Есть на CSharp смотрите в архиве "\OLE\Loader_CSharp\". Также на VB.Net. Каталог рядом.
 
Этот проект вываливается по ошибке:

System.Runtime.InteropServices.COMException was unhandled
Message=Сбой при получении производства объектов класса COM для компонента с CLSID {FD9A10C9-8828-4E0C-9B64-38F0900916FF} в результате следующей ошибки: 80040154.
Source=mscorlib
ErrorCode=-2147221164
StackTrace:
в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
в System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
в System.Activator.CreateInstance(Type type, Boolean nonPublic)
в Loader_CSharp.Form1.Form1_Load(Object sender, EventArgs e) в c:\Downloads\4\dll_6.0.1.0\OLE\Loader_CSharp\Loader_CSharp\Form1.cs:строка 87
в System.Windows.Forms.Form.OnLoad(EventArgs e)
в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateControl()
в System.Windows.Forms.Control.WmShowWindow(Message& m)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
InnerException:
 
Ну это вроде как OLE механизм. Библиотеку зарегистрировать нужно. regsvr32
 
Дык, зарегистрировали конечно.
Все банально. Для истории: эта ошибка возникает на 64-битных системах.
Лечится переводом в x86.
 
Гм... скорее всего, на 64-разрядах как раз OLE не гоняли... Нужно попробовать..
 
Цитата
Дык, зарегистрировали конечно.
Все банально. Для истории: эта ошибка возникает на 64-битных системах.
Лечится переводом в x86.
Странно, оболочка написана в 32-й windows, sdtCipherLab.dll - тоже, в 64-х через regsvr32.exe успешно регистрируется, лежит все в C:\Programm Files(x86)\ но вылетает с такой же ошибкой. что еще посмотреть можно, что бы в 64-й работало?
 
Поиск по тырнету дал следующий результат: лезем в свойства проекта и выбираем вкладку Build. В строке "Platform target" выбираем x86. Пересобираем проект - вуаля!
У меня на примере "LoaderCipherLabTCP_C_Sharp" в 32х было нормально, а на Windows 2008 R2 такая же ошибка была, только UID другой. Сделал как написал выше и проект запустился, сервер стартанул.
Страницы: 1