Создание DLL

Создание, использование компонентов ActiveX
Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Создание DLL

Сообщение Чудик » 15.10.2004 (Пт) 8:13

Прошу о немногом - скиньте, пожалуйста, ссылку на статью, где наиболее полно описывается создание DLL в VB.
Век живи - век учись!
www.detal-plast.narod.ru

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 15.10.2004 (Пт) 17:15

Где взять статью - не знаю... А какие у тебя проблемы-то? Просто когда создаешь проект, то указываешь, что это у тебя будет ActiveX DLL. Соответственно, на выходе получишь dll, а не exe.

А так-то все то же самое...
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 15.10.2004 (Пт) 18:21

Если хочешь Native DLL, то тебе сюда

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Создание DLL

Сообщение Чудик » 18.10.2004 (Пн) 7:10

Спасибо за отклики! Порой даже пару слов, на первый взгляд мало информационные, способствуют мощному толчу для дальнейшего движения и решения задач.
Век живи - век учись!
www.detal-plast.narod.ru

Eugene
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 08.01.2005 (Сб) 12:06

Сообщение Eugene » 24.01.2005 (Пн) 16:57

Всем привет!
сейчас нужно написать ДЛЛ-ку, к-я считывает данные из файла,
Может кто знаком - есть TradeStation2000i там есть примитивный язык програм-я, и нет возможности работать с открытием файлов (хотя запись в файл есть - а вот чтение к сож-ю отсутствует). Вообщем создаю я ActiveX DLL с кодом:

Function OPENFILE(FileName As String) As Double
Dim Value1 As Variant
Open FileName For Input As #1
Input #1, Value1 вот это правильно?
OPENFILE = Value1
End Function
Function Third(i As Double) As Double эта ф-я просто для проверки
Third = i * i * i
End Function

так вот... тот язык програм-выдает ошибка - can't find OPENFILE function и тоже самое для Third.

Я не правильно ДЛЛ написалв принципе или как? Ведь не говорится о неправильной обработке файла или ошибки в коде - именно не может найти ф-ю.
Хелп, плз

Krasavica
Небожительница
Небожительница
Аватара пользователя
 
Сообщения: 1378
Зарегистрирован: 04.11.2003 (Вт) 17:51
Откуда: Россия, город-герой Москва ;-)

Сообщение Krasavica » 15.03.2005 (Вт) 10:17

Eugene писал(а):Всем привет!
сейчас нужно написать ДЛЛ-ку, к-я считывает данные из файла,
Может кто знаком - есть TradeStation2000i там есть примитивный язык програм-я, и нет возможности работать с открытием файлов (хотя запись в файл есть - а вот чтение к сож-ю отсутствует). Вообщем создаю я ActiveX DLL с кодом:

Function OPENFILE(FileName As String) As Double
Dim Value1 As Variant
Open FileName For Input As #1
Input #1, Value1 вот это правильно?
OPENFILE = Value1
End Function
Function Third(i As Double) As Double эта ф-я просто для проверки
Third = i * i * i
End Function

так вот... тот язык програм-выдает ошибка - can't find OPENFILE function и тоже самое для Third.

Я не правильно ДЛЛ написалв принципе или как? Ведь не говорится о неправильной обработке файла или ошибки в коде - именно не может найти ф-ю.
Хелп, плз


А эти функции помечены как функции, эспортирующиеся из ДЛЛ?

Если нет, то тогда понятно почему система не может их найти.
я - ангел!!! ...просто крылья в стирке, а нимб на подзарядке!
Меня трудно найти, легко потерять и невозможно забыть.Изображение

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 15.03.2005 (Вт) 10:21

к тому же ActiveX-DLL написанные на VB не экспортируют никаких функций, кроме двух, предназначенных для регистрации их в системе.
остальные же являются методами публичных классов, описанных в библиотеке
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 13.05.2005 (Пт) 3:52

У меня возникло несколько взаимопересекающихся вопросов, касаемых VB Activx DLL.

Условие 1:
В DLL создан произвольный GlobalMultiUse - класс .
Класс содержит список PUBLIC-перечислений и (или) PUBLIC-констант.
После подключения DLL к новому проекту видны все перечисления/константы, но вне класса, и сам класс (пустой).
Вопрос 1: Как избавиться от видимости "пустого" класса, и одновременно оставить его перечисления видимыми?

Условие 2:
Тот-же DLL содержит модуль(и). Модуль - группу PUBLIC-переменных (функций).
Вопрос 2: Почему при подключении DLL к проекту этот модуль, и соответственно его переменные и функции не видны?

Условие 3:
Исходные как в условии 2.
При создании нескольких новых объектов от одной DLL PUBLIC-переменные (которые в модуле) пересекаются, т.е. переменные всех ранее созданных объектов принимают значения последнего (сидят в одной области памяти).
Вопрос 3: Как избежать перекрытия?

Условие 4:
Project (DLL2-reference)
^
DLL2 (DLL1-reference)
^
DLL1
Вопрос 4: Случайно подумал: а вдруг можно из Project увидеть DLL1?
- Какой треугольник не подвластен законам геометрии?
- У которого все углы тупые!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.05.2005 (Пт) 10:00

1. Перенести перечисления и константы в другой класс, а глобальный вообще убрать.
Публичные перечисления и константы всегда глобально видимы, независимо где они объявлены.
2. Модули видны только внутри проекта. Это ограничение языка - в ActiveX-компоненте публичными м.б. только классы.
3. Перенести эти переменные в класс :-)
Модуль именно для того и нужен, чтобы это "перекрытие" происходило.
4. Нельзя (а проверить не дано?)
Изображение


Вернуться в Компоненты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

    TopList