Есть прога написанная на VB (студия 6-а, VB SP5). В ней в качесте генератора отчетов используются Excel и Word. Писалось и тестировалось все на машине с XP и MS Office XP (дома). Сделал Package, пришел на работу (W98, офис97), поставил — фиг, сабжевая ошибка. Залез в VB (на работе который стоит, такой же что и дома) и выяснил, что ошибка вылезает при первом же обрашении к методу вновь созданного объекта Ворд/Ексель. При этом точно известно, что сам объект был создан успешно (хотя сам VB вылетает после этого, но в списке процессов Ворд уже появился). Также выяснилось, что ПЕРЕСТАЛА генерить отчеты другая, ранее написанная прога (тоже на VB, механизм работы с отчетами у них одинаковый).
Кто-нибудь сталкивался с такой байдой? Сильно кажется мне, что виновата какая-то библа из "домашнего" Package-а. Я прав? Какая? И что тогда делать, скоро ж заказчику нести, там такая же проблема возникнуть может.
Допоможить кто може, времени осталось не очень много.
Здравствуйте, Gosha, Вы писали:
G>Всем привет!
G>Есть прога написанная на VB (студия 6-а, VB SP5). В ней в качесте генератора отчетов используются Excel и Word. Писалось и тестировалось все на машине с XP и MS Office XP (дома). Сделал Package, пришел на работу (W98, офис97), поставил — фиг, сабжевая ошибка.
В References подключал Microsoft Word/Excel 10 Object Library ? — 10 это версия XP, офис 97 имеет меньший номер версии, предполагаю проблемма в этом — программа просто не находит (не может создать) нужной версии офисных компонентов. Почему Ворд появляется в списке процессов... странно.
Здравствуйте, _AsM, Вы писали:
_AM>В References подключал Microsoft Word/Excel 10 Object Library ? — 10 это версия XP, офис 97 имеет меньший номер версии, предполагаю проблемма в этом — программа просто не находит (не может создать) нужной версии офисных компонентов. Почему Ворд появляется в списке процессов... странно.
Нет, именно из-за (возможно) разных версий офиса референсы не использую, создаю вручную:
Dim wordObj As Object
Set wordObj = CreateObject("word.application")
call wordObj.Documents.Add (MyTemplatePath, False)
...
скорее всего, дело действительно в версиях...
xp сильно отличается от всех предыдущих
копай в этом направлении (рекомендую дома поставить офис97 и просто пройтись по коду в отладчике)
Поменял Oleaut32.dll которую принес с собой Pakage собранный на ХР (3.50.5014.0) на "старую", на которой еще все работало (2.40.4268) — заработало.
Вот вам и dll hell
G>Поменял Oleaut32.dll которую принес с собой Pakage собранный на ХР (3.50.5014.0) на "старую", на которой еще все работало (2.40.4268) — заработало.
G>Вот вам и dll hell
Это ошибка "Incompatible version of the RPC stub". -2147023067 => &H80070725, &H70000 => FACILITY_WIN32 и &H0725 => 1829
//
// MessageId: RPC_X_WRONG_STUB_VERSION
//
// MessageText:
//
// Incompatible version of the RPC stub.
//#define RPC_X_WRONG_STUB_VERSION 1829L
Действительно, должна быть связана с Oleaut32.dll — стандартным маршаллером стандартных интерфейсов.
Но почему твой Package запихал эту DLL в твой проект? Она должна быть в системе, ее не надо приносить с собой. Именно так и обходится этот hell.