Native DLL

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

AsDev
Новичок
Новичок
 
Сообщения: 35
Зарегистрирован: 30.10.2004 (Сб) 11:50

Сообщение AsDev » 05.01.2005 (Ср) 12:51

natice lib вещица неплохая,вот только с типом string она как то коряво работает ;-)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2005 (Ср) 12:59

А если его не возвращаемым значением, а параметром? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение tyomitch » 06.01.2005 (Чт) 4:27

Дык ведь поровну - что там, что там "настоящий" (широкий) BSTR. К ABSTR и тем более LPSTR ты его никак не приучишь.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.01.2005 (Чт) 6:06

Аааа, видать когда declare, VB конвертит в ABSTR, а не надо :)
Как объявлять, чтобы не конвертил? Byref string? Long, а передавать varptr?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение tyomitch » 06.01.2005 (Чт) 17:51

GSerg писал(а):Аааа, видать когда declare, VB конвертит в ABSTR, а не надо :)

Именно так :-)
GSerg писал(а):Как объявлять, чтобы не конвертил? Byref string? Long, а передавать varptr?

Long, а передавать StrPtr
Изображение

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 24.01.2005 (Пн) 20:17

Я разгадал почему никто не прыгает от такой полезной вещи...
Никто не знает как ей пользоваться....
Первую часть это понятно...
а как прописывать Експорты...
понятно, что ф-ей...
Но как узнать адреса?
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

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

Сообщение A.A.Z. » 25.01.2005 (Вт) 0:00

Exports "SUMMA", AddressOf Sum
Ну ЧТО тут такого??? :(

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 25.01.2005 (Вт) 18:01

Тише...
Теперь понял.....
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 17.05.2005 (Вт) 17:48

Не пойму ...
Сделал Native DLL, откомпилировал, запустил, получил DLL. Затем запускаю ее функцию, а она говорит - ActiveX component can't create object. Подскажите, в чем дело?
PS:: в DLL-е несколько форм, ресурс, несколько модулей и класс.
На это не смотрите! Это не подпись!!!!!!

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

Сообщение tyomitch » 17.05.2005 (Вт) 18:32

ИМХО эта ошибка с сабжем не связана.
Где-нибудь какой-нибудь компонент не зарегистрирован, или типа того.
Изображение

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 17.05.2005 (Вт) 19:28

Я знаю, что не в тему, но все же. Из контролов используется только MSFlexGrid. Я уже подозреваю в этом формы, но ...
На это не смотрите! Это не подпись!!!!!!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 18.05.2005 (Ср) 5:42

Теперь объясни, нафига ты пихал формы в dll.
Формы надо пихать в activex dll.
Native dll - это не для использования везде, потому что типа круто.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 18.05.2005 (Ср) 12:16

Сейчас Native DLL для меня - единственный метод написания DLL на VB, поэтому не пользуюсь ActiveX DLL. А формы - в моем случае - замена некоторых окон (MsgBox, InputBox, Splash, About и т.д.)
На это не смотрите! Это не подпись!!!!!!

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 23.08.2005 (Вт) 8:50

А у меня ваш проект вообще не скачивается :(
Как только нажимаю ссылку сразу теряется авторизация :(
Если всё делать своими ручками, они скоро отвалятся !

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 24.08.2005 (Ср) 19:06

А у меня скачалось, бегу оценивать!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.08.2005 (Чт) 2:41

Бежишь??? Теме почти год :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 25.08.2005 (Чт) 2:44

Некрофилия в разгаре :)
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 25.08.2005 (Чт) 8:24

Я тож хачу заценить :D
Пришлите мне проект кто-нибудь на XardasEx@mail.ru :roll:
Если всё делать своими ручками, они скоро отвалятся !

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 25.08.2005 (Чт) 8:43

GSerg
И почему я этого раньше не видел?
Все работает, только не сработал LinkReplacer. Ничего не написал, но и ничего не поменял. Пришлось менять вручную.
Вещь!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.08.2005 (Чт) 9:02

Кто тебя знает, почему ты раньше не видел? Наверное, особо Трёп не жалуешь, в котором я описательную статью выкладывал :)
А LinkReplacer - это A.A.Z. чё-то там делал, я не знаю :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 25.08.2005 (Чт) 9:15

GSerg
Кто тебя знает, почему ты раньше не видел? Наверное, особо Трёп не жалуешь

Представь, что ты подумаешь, если в трепе увидишь тему "Native DLL на VB". Тем более не зная заранее, что это возможно.
Нужно будет мне выработать в себе привычку обращать внимание на то, кто в теме автор.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 28.08.2005 (Вс) 0:02

Спасибо Mikle! :)
Проект классный :!: :!: :!:
З.Ы.: иногда приятно побыть некрофилом :twisted: :twisted: :twisted:
Если всё делать своими ручками, они скоро отвалятся !

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 14.10.2005 (Пт) 14:08

GSerg
tyomitch
A.A.Z.
Можно поподробнее про ограничения, чтобы не натыкаться на все методом проб и ошибок.
Про StrPtr при передаче строк вроде ясно.
Не получается юзать ООП даже для внутренних нужд либы.
Что делать с массивами-параметрами, что если массив переменного размера?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.10.2005 (Пт) 14:11

В каком смысле не получается юзать ООП?
Какой массив?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 15.10.2005 (Сб) 10:19

GSerg
В каком смысле не получается юзать ООП?

В библиотеке создаю класс, а в нативном модуле создаю его экземпляры. Интерфейс идет только из нативного модуля - все равно не работает.
Какой массив?

Процедура в DLL не вычисляет UBound массива-параметра. Передавать UBound отдельно?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 15.10.2005 (Сб) 13:35

Со строками решил без StrPtr. Обычным образом передаю и принимаю строку, а принятую в DLL строку конвертирую так:
Код: Выделить всё
Public Sub ConvertString(s As String)
Dim b() As Byte, n As Long
  b() = s
  s = ""
  For n = 0& To UBound(b)
    s = s & Chr$(b(n))
  Next n
End Sub

Работает и при передаче ByVal и ByRef.

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

Сообщение tyomitch » 15.10.2005 (Сб) 14:05

Mikle, то же самое, что и твоя функция, только намного быстрее, сделает стандартная функция StrConv.
Но только использование StrPtr позволит избежать конвертации строки в Юникод и обратно.
Изображение

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 15.10.2005 (Сб) 14:08

tyomitch
то же самое, что и твоя функция, только намного быстрее, сделает стандартная функция StrConv.

Вечно я изобретаю велосипеды :D

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 17.10.2005 (Пн) 13:29

Народ, скажите хоть, будут эти DLL работать их других языков? А то я людям давал на пробу - они из Дельфи не смогли использовать.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 19.10.2005 (Ср) 8:50

Mikle писал(а):Народ, скажите хоть, будут эти DLL работать их других языков? А то я людям давал на пробу - они из Дельфи не смогли использовать.


Эти не пробовал, но обычные ActiveX DLL дельфисты использовали на ура...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Пред.След.

Вернуться в Наши проекты

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

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

    TopList