RUS  ENG 

ZULU компоненты

Страницы: 1
RSS
ZULU компоненты
 
Ребят, подскажите, как сделать, чтобы приложение, написанное с использованием ваших компонентов работало без инсталляции ZULU? Что и ка нужно регистрировать? Пробовал regsvr32, но не все компонены удается зарегить.
И еще вопросик:
как использовать объект ZbDatabase в VC++ ?
 
1. Для работы компонентов нужны:
ZuluLib.dll (reg) - ядро Zulu
ZuluCtrl.ocx (reg) - компоненты ZuluXTools
zuluui.dll (reg) - служебная библиотека
zb.dll (reg) - работа с семантической БД
ZuluCtl2.ocx (reg) - служебная библиотека компонент
(reg) - значит нужно регистрировать.
Также нужен run-time от MS VC++ 6.0:
vcredist.exe (http://support.microsoft.com/default.aspx?scid=kb;en-us;259403)
Кроме того, для Windows 98 (не SE) нужно обновление ComCtl32.dll версии 5.0:
50comupd.exe (http://www.microsoft.com/downloads/details.aspx?FamilyID=cb2cf3a2-8025-4e8f-8511-9b476a8d35d2&DisplayLang=en)

2. ZbDatabase - объект семантической базы данных (библиотека zb.dll). Создаваемый. Т.е. можно сделать так:
Dim db as ZbDatabase
Set db = new ZbDatabase
db.Open( "path_to_zb_file" )
'пользуемся...
Что именно нужно - спрашивайте...
 
1. У меня, при попытке регистрации regsvr32 zululib.dll выдает что-то типа "Ошибка при вызове LoadLibrary - не найден указанный модуль", это на машине, где ZULU ни разу не ставился. ОСХ регистрируются без проблем
2. Т.е нужно подгружать zb.dll, через LoadLibrary ?
 
По второму вопросу, я может не совсем понятно выразился, но просто я не вижу никаких интерфейсов для ZbDatabase в своем VC++ проекте. Где он описан?

Спасибо.
 
Цитата:
1. У меня, при попытке регистрации regsvr32 zululib.dll выдает что-то типа "Ошибка при вызове LoadLibrary - не найден указанный модуль", это на машине, где ZULU ни разу не ставился. ОСХ регистрируются без проблем
2. Т.е нужно подгружать zb.dll, через LoadLibrary ?

1. Забыл: кроме того, что я писал, нужна библиотека gdiplus.dll (можно взять из Windows XP). При возникновении ошибки "не найден указанный модуль" - проверьте зависимости с помощью Dependency Walker (depends.exe, входит в поставку MS VC++) - сообщите, что не нашлось.
2. ZbDatabase - coclass. Он реализует интерфейс IZbDatabase. Описаны в библиотеке zb.dll. Если в VC библиотека zb.dll импортировалась директивой #import, то на VC можно так поступить:
IZbDatabasePtr db;
::CoCreateInstance( __uuidof(ZbDatabase), NULL, CLSCTX_INPROC_SERVER, __uuidof(IZbDatabase), (void**)&db);
//или так:
db.CreateInstance( __uuidof(ZbDatabase), NULL, CLSCTX_INPROC_SERVER);
//дальше:
db->Open( "путь" );

Соответственно, грузить через LoadLibrary не надо.
 
Да, именно gdiplus.dll не хватало, благодарю
 
Опять к вопросу о ZbDatabase.
Так и не получилось у меня прицепить zb.dll, я отложил это, но теперь пришлось вернуться.
Ипортирую через #import. При компиляции ругается:
d:\project\zuluview\debug\zb.tlh(13) : error C2059: syntax error : '('
d:\project\zuluview\debug\zb.tlh(13) : error C2143: syntax error : missing ';' before '{'
d:\project\zuluview\debug\zb.tlh(13) : error C2447: missing function header (old-style formal list?)

в 13 строке объявление пространства имен:
namespace ZB

пробовал импортировать с атрибутом no_namespace - тоже не проходит

d:\project\zuluview\debug\zb.tlh(3082) : error C2501: 'FontPtr' : missing storage-class or type specifiers
d:\project\zuluview\debug\zb.tli(2475) : error C2433: 'FontPtr' : 'inline' not permitted on data declarations
 
// Вставьте в проект на VC++ перед #import такой H-файл
#ifndef __STDOLE2_H
#define __STDOLE2_H

#pragma pack(push, 8)

#include <comdef.h>

struct __declspec(uuid("bef6e002-a874-101a-8bba-00aa00300cab")) IFont;
struct __declspec(uuid("bef6e003-a874-101a-8bba-00aa00300cab")) Font: public IFontDisp {};
struct __declspec(uuid("7bf80980-bf32-101a-8bbb-00aa00300cab")) IPicture;
struct __declspec(uuid("7bf80981-bf32-101a-8bbb-00aa00300cab")) Picture: public IPictureDisp {};
struct __declspec(uuid("4ef6100a-af88-11d0-9846-00c04fc29993")) FontEvents;


_COM_SMARTPTR_TYPEDEF(IFont, __uuidof(IFont));
_COM_SMARTPTR_TYPEDEF(Font, __uuidof(IDispatch));
_COM_SMARTPTR_TYPEDEF(IPicture, __uuidof(IPicture));
_COM_SMARTPTR_TYPEDEF(Picture, __uuidof(IDispatch));
_COM_SMARTPTR_TYPEDEF(FontEvents, __uuidof(IDispatch));

#pragma pack(pop)
#endif//__STDOLE2_H


#import "\Zulu32\Zulubase\Zb.tlb" no_namespace
Страницы: 1