Создание ВК для сканера на C# #661650


#0 by Damage
Доброе время суток. Возникла необходимость создать компоненту для Wi-Fi сканера ШК с возможностью обратной связи. Застрял на этапе генерации в 1с внешнего события. Если внешнее событие выполнять из процедуры ВК, запускаемой из самой 1с, то все работает. А вот из-под процедуры-обработчика сканера, падает с исключением "Невозможно привести COM-объект типа "System.__ComObject" к интерфейсному типу "IAsyncEvent". Операция завершилась со сбоем, поскольку вызов QueryInterface COM-компонента для интерфейса с IID "{AB634004-F13D-11D0-A459-004095E1DAEA}" возвратил следующую ошибку: Интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE))."
#1 by Damage
Код класса: [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface ICinoScaner { } namespace AddIn    public class MyComponent : AddIn, ICinoScaner    {                public IntPtr UnmanagedPointerBuf = Marshal.AllocHGlobal(1024);        private void NotifyCallBack(IntPtr buf, int length)        {            try            {        }        private void SendRemoteMessage(string msg, ushort[] msg_option)       {           REMOTE_MESSAGE setting = new REMOTE_MESSAGE;       }        public string Connect(string comport)        {            try                const UInt32 USE_COMM_BREAK_AS_RECORD = 0x40;                const UInt32 DEFINE_COMM_BREAK_50 = 20 << 16;        }        public string Disconnect        {            try        }        public string SendMessage(string msg, int msgtype)        {            try            {        }    } }
#2 by Damage
#3 by Damage
нашел решение проблеммы, dll надо регистрировать с ключем /tlb, а не с /codebase
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С