Sep. 1st, 2012

yorool_gui: (Default)
Если вы изменили интерфейс ActiveX объекта, а в VBA IDE после пересборки проекта все показывается по старому, то не надо сразу биться головой об стену. А что надо - это убедиться, что изменения попали в Type Library, в которую смотрит VBA (меню Edit -> References).
Вначале стоит убедиться, что в .tlb файл (который порождается из .odl / .idl файла компилятором midl.exe) эти изменения попали. Это можно сделать, открыв его из OleView.Exe (File -> View TypeLib). Затем, если в tlb все ок, открыть так же .exe файл проекта (который и подключен в VBA) и убедиться, что там до сих пор старая версия интерфейса.
.tlb в .exe помещается компилятором ресурсов. Ссылка на .tlb находится в файле ресурсов (.rc2 в моем случае). Соответственно, если менялся файл описания интерфейсов (.odl / .idl), то надо перекомпилировать ресурсы, чтобы все заработало. Автоматическая такая зависимость почему-то отсутствует.

Наверное тому, кто с ActiveX плотно работает, это сообщение Капитана Очевидность. Но вот мне ActiveX приходится трогать эпизодически и я этого не знал.

Profile

yorool_gui: (Default)
Michael Ilyin

April 2017

S M T W T F S
      1
2 345678
910 1112131415
16171819202122
23242526272829
30      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 24th, 2025 08:23 pm
Powered by Dreamwidth Studios