|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Результаты опроса: Стоит ли использовать ActiveX, написанный на Delphi, в своих приложениях | |||
Нет | 1 | 14.29% | |
Да | 3 | 42.86% | |
В зависимости от кривизны рук разработчика | 4 | 57.14% | |
Лучше писать ActiveX на другом языке | 2 | 28.57% | |
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 7. Вы ещё не голосовали в этом опросе |
|
|
Опции темы | Поиск в этой теме |
21.02.2010, 13:23 | #1 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
Использование библиотек в Delphi
Доброго времени суток!
Сегодня столкнулся вот с такой проблемой: я разрабатываю библиотеку ActiveX на Delphi 2006 и мне необходимо обращаться к другим библиотекам ActiveX, написанных С++Builder. В одной из библиотек есть метод Get_Values(ID: Integer; var Values: Integer; var Count: Integer): HResult которые возвращает по указанному ID массив значение Values и количество значений Count. Я получаю количество значений, но какие бы "танцы с бубном" я бы не использовал - не могу получить массив((( Вот пример использования данной функции на C++, может кто подскажет как мне получить тоже самое, но в Delphi. Заранее спасибо))) long count = 0; GlobalFilter->get_values (0, NULL, &count ); long * values = ( count == 0 ) ? NULL : new long [ count ]; if ( values != NULL ) GlobalFilter->get_values (0, values, &count ); |
21.02.2010, 21:47 | #2 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
Вот то же самое на делфи:
Код:
|
21.02.2010, 22:01 | #3 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
Все бы хорошо, НО...
1. Второй параметр имеет описание VAR; 2. Второй параметр объявлен как Integer. |
21.02.2010, 22:11 | #4 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
Хм, не понял - и в чём проблема?
UPDATE: Я перепутал второй и третий параметры, теперь понял в чём вопрос . Нужно изменить объявление этого метода, заменив второй параметр на Values : PInteger (без var). Последний раз редактировалось maxionans; 21.02.2010 в 22:14. |
21.02.2010, 22:35 | #5 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
В самом методе? Этот метод импортирован из ocx-файла...
|
21.02.2010, 22:51 | #6 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
Технически передача массива через такой параметр возможна, но само объявление вводит в заблуждение, поэтому лучше заменить на PInteger. А то, что так было импортировно из OCX, это никакой не показатель - импортирование-то автоматическое, а значит не учитывает контекст применения кода.
|
21.02.2010, 23:04 | #7 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
Не помогло(((
Все равно возвращется 0, либо то, что я указал до вызова этого метода((( |
21.02.2010, 23:15 | #8 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
у меня в свое время была проблема с параметром buf: byte, который по идее должен возвращать строку.
она решилась через... buf: pchar и его передачу как byte(buf^)....может и здесь что-то аналогичное, вот что именно никак не соображу... |
21.02.2010, 23:16 | #9 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
Очевидно, ошибка не в этом коде. Может быть GlobalFilter нужно как-то инициализировать перед использованием или что-то в этом роде?
|
21.02.2010, 23:19 | #10 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
другие методы работаеют без проблем,
а инициализация происходит как GlobalFilter.Connect тем более другие значения то возвращаются, и в коде на с++ все работает... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание\использование своих DLL библиотек | Vol666 | Общие вопросы Delphi | 5 | 26.08.2009 11:55 |
использование в delphi com объектов | Anekdot | Помощь студентам | 0 | 18.06.2009 19:54 |
Использование JavaScript в Delphi... | Valdis | Общие вопросы Delphi | 2 | 27.09.2007 08:45 |
Использование JPEG в Delphi 7 | Aslan | Мультимедиа в Delphi | 11 | 02.08.2007 13:25 |
Использование функции Excel из Delphi | Геля | Общие вопросы Delphi | 3 | 07.06.2007 07:33 |