Передача объекта из VBA в VB - PullRequest
0 голосов
/ 13 августа 2011

Я работаю с бухгалтерским пакетом, который поддерживает VBA. Когда система учета выполняет макрос VBA, она передает объект «Сеанс», который включает в себя информацию для входа в систему, которая может использоваться для доступа к другим частям пакета учета. Я могу создать приложение VB6 и ссылаться на библиотеку COM, где определен этот тип сеанса. Когда я запускаю приложение VB6, мне нужно инициализировать переменную Session, которая включает в себя вход в учетную систему, и в итоге я использую другую параллельную лицензию. Если я придерживаюсь VBA, у меня нет этого ограничения, но я застреваю с VBA.

Я пытаюсь выяснить, есть ли способ заставить макрос VBA, у которого уже инициализирован этот объект Session, отправить этот объект Session в программу VB. Я думаю, что я могу создать DLL, которая вызывает макрос VBA и передает объект Session. Тогда DLL может выполнить программу VB, сама. Эта программа VB (я надеюсь) может сделать обратный вызов DLL, чтобы получить доступ к переменной Session. Я думаю, что если программа VB была вызвана DLL, программа VB должна иметь доступ к общей памяти.

Таким образом, вопрос заключается в следующем: могу ли я, чтобы программа VBA вызывала DLL, передавала COM-объект в эту DLL, могла ли эта DLL вызывать VB-программу, и чтобы этот COM-объект был доступен для вызываемой VB-программы?

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Я скажу нет.Вы должны быть в состоянии создать dll VB6 (или даже .NET), который может обращаться к переданному объекту Session, но вы не можете затем передать этот объект из процесса из пакета учета (который создал и инициализировал объект Session для вас)обойти лицензирование.Но вы можете просто поместить нужную логику в DLL.

0 голосов
/ 16 августа 2011

Позвольте мне нанести удар по этому. Мой предпочтительный метод - просто делать все в .NET с помощью XL-DNA или какой-либо другой подобной программы (я просто придерживаюсь XL DNA, так как он бесплатный и отлично работает). Есть платные программы, которые делают работу еще проще.

Для подхода, о котором вы говорите, вот пара ссылок, которые могут помочь, я никогда не работал с ними, так что удачи!

http://support.microsoft.com/kb/317535

http://www.xtremevbtalk.com/showthread.php?t=303014

...