Вопрос

У меня есть класс, основанный на CSocket в DLL, который имеет различные потоковые буферы для хранения входящего потока.У меня есть пара приложений, с которыми это работает отлично, используя таймер для опроса буфера, чтобы увидеть, есть ли там что-нибудь для извлечения и последующего отображения.

Теперь у меня есть таймер в некотором коде VBA, макро, если хотите, в модуле Excel.Таймер срабатывает, как и ожидалось, но библиотека DLL сообщает только о том, что в буфере есть содержимое, когда вы удерживаете нажатой кнопку мыши на вкладке прокрутки или в строке заголовка Excel!Таким образом, если вы попытаетесь переместить окно Excel, таблица начнет заполняться данными, извлеченными из буфера.Если вы попытаетесь переместить окно программно, то это не сработает.Каким-то образом мышь фокусируется на рамке окна Excel.Это также работает, если вы откроете системное меню в левом верхнем углу окна.(Кстати, это Excel 2003 SP3.)

Нет правильного решения

Другие советы

Для "принятого" ответа смотрите Комментарий выше (который я не могу передать, мод отказался и, предположительно, OP не собирается этого делать).Т. е.:

Поместите библиотеку DLL в ее собственный поток.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top