![]() |
|
![]() ![]() ![]() |
|
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
У меня есть библиотека, в которой согласно документации есть функция:
CString ZonePoiEncode(LPCTSTR PointString, short PointCount) Как получить на нее указатель и вызвать? Так не работает:
Или эту библиотеку надо регистрировать в системе? Как достать функцию ZonePoiEncode? Файл библиотеки и описание прилагаю. Спасибо. Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 1 Всего: 88 |
посмотри каким-нить дампером таблицы экспорта есть ли она там, и если есть - точно как называется
Добавлено через 5 минут и 45 секунд ааа, ну так и есть. Нету ее там. Это ж ocx Твоя функция вызывается через интерфейс '{2EFB7C1F-849A-4276-9B2E-F8B87688905D}' Добавлено через 9 минут и 17 секунд меню component - import component Там выбираешь Import type library. В конце мастера нужно выбрать создание юнита. Читаешь юнит, и начинаешь понимать как добраться до метода. -------------------- Обижено школьников: 8 |
|||
|
||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
Большое спасибо!
![]() Буду пробывать. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
||||
|
||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
А что настараживает? Функция согласно документации к устройству принимает массив координат как строку и кол-во этих координат. После обработки функция возвращает кодированную строку. Эта строка шлется устройству. Судя по описанию разработчики создовали этот ОСХ в VC++. Когда я попросила код функции, мне прислали по почте этот ОСХ. Вот я и пытаюсь взять эту функцию от туда. ![]() |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 1 Всего: 88 |
настораживать должно то, что
а) тебе нужно выделить строку под результат б) метод выделит все сам, но тебе нужно освободить Ну и раз уж тут интерфейсы, то логично предположить что память под строку будет освобождена когда будет вызван последний Release интерфейса -------------------- Обижено школьников: 8 |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Настораживает то - что возвращаемое значение класс MFC. И таким образом как ты подключала - не факт что все будет кошерно. Общеизвестно - *.ocx - это элементы управления ActiveX. Собственно он устанавливается через меню Билдера. Хотя bems, как я понимаю, про это и говорил ![]() |
|||
|
||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
Все таки не совсем понятно. Запустила Builder. Затем Import type library. Вижу такое объявление в ZONECODELib_TLB.h
Вопросы такие: 1. Мне надо научиться получить указатель на Interface: _DZoneCode и потом можно будет вызвать ZonePoiEncode? 2. А какие шаги надо сделать чтобы вызвать эту функцию из уже существующего проекта? Мне надо регистрировать этот ОСХ в Windows через regserver32 и затем добавить include ZONECODELib_TLB.h? Можно чуть подробнее, пожалуйста, расписать правильную последовательность. Это сообщение отредактировал(а) Лена - 23.9.2009, 14:47 |
|||
|
||||
xvr |
|
||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Его надо создать. Как то так:
Это сообщение отредактировал(а) xvr - 24.9.2009, 11:30 |
||||||||||
|
|||||||||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
Большое спасибо! Сейчас буду пробывать.
P.S. Еще вроде можно вызвать через обертку Variant (в книге нашла), как то так:
|
|||
|
||||
xvr |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Можно
![]()
|
||||||||
|
|||||||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
Спасибо!
Значит последователность такая: 1. Размещаю например мой ОСX в папке Windows и запускаю его с опцией командной строки regserver32. 2. В проект добавляю этот OCX через Import type library. 3. Пробую вызвать функцию ZonePoiEncode. |
|||
|
||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
Я хочу со временем добавить этот ОСХ в инсталляционную программу, чтобы этот ОСХ в процессе инсталляции регистрировался в системе. Однако я хочу, чтобы при этом не было никаких дополнительных окон.
В данный момент я поместила вручную этот ОСХ в папку Windows и через меню Run запустила регистрацию: C:\WINDOWS\ZoneCode.ocx /RegSvr32 /s Однако окно все равно появилось (см. рис.). Как его подавлять при инсталляции? Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() |
|||
|
||||
Alca |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 25 Всего: 50 |
Добавлено @ 12:47
Это сообщение отредактировал(а) Alca - 24.9.2009, 12:48 |
||||
|
|||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: 11 Всего: 11 |
Все ясно, спасибо.
С вызовом функции проблемы. Ругается при передче параметров. Пишет "Разрушительный сбой". Пробую другой вариант, тоже не помогает:
Что не так? ![]() Это сообщение отредактировал(а) Лена - 24.9.2009, 13:31 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |