[FireNativeDLL] Создание полноценных DLL на Visual Basic

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

Модератор: BV

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 25.12.2007 (Вт) 22:52

Func_####, где #### - ординал.
Если такое имя уже есть - Func__####, если и оно есть, то Func___#### и т. д.

А вообще, надо в любом случае дополнить конструкцию для изменения имени в TLB.

По поводу неактуальности - в WinCE 4 используется повсеместно.
Изображение

mikirada
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 01.03.2008 (Сб) 17:05

Сообщение mikirada » 01.03.2008 (Сб) 17:18

у меня три вопроса


1 так и не понятно как создавать и вызывать процедуры
у которых выходной параметр String (или другой пользовательский)
у меня на выходе только первый символ строки
Код: Выделить всё
в dll
Public Function AAA() As String
Dim txt As String
    txt = "Hello"
    AAA= txt    'StrConv(txt, vbUnicode) ???
end function

при вызове
Private Declare Function AAA Lib "c:\EX1.dll" () As String


если можно пример


2 где можно будет скачать вторую версию
если уже есть

3 можно ли через данную программу создать dll как расширенные процедуры в частности для SQl Server-а

Спасибо

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

Сообщение BV » 02.03.2008 (Вс) 12:50

StrConv(txt, vbUnicode) ???


StrConv(txt, vbFromUnicode)
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;


Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 02.03.2008 (Вс) 13:05

Блин, я видимо забыл нажать кнопку "Отправить", когда написал ответ.

Ещё раз:
1) Да, как сказал BV. В DLL, а лучше - после вызова (в вызывающей стороне).

2) Ещё нет. Скачать можно будет там же, где и первую.
3) А почему бы и нет? Не пробовал, не скажу.

ЗЫ. Вопросы по FNDLL 1.0 лучше задавать здесьв отдельных топиках.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1598
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение arthur2 » 30.04.2009 (Чт) 13:21

ссылки на http://fire-lines.ru/ больше не работают? :(
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 30.04.2009 (Чт) 13:36

Подошёл срок оплаты, а денег на WM-счету нет. Домен можно будет продлить ещё в течение 20 дней.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 03.10.2010 (Вс) 16:47

Нет возможности скачать проект.
Есть возможность выложить дополнительно или переслать на почту\в личку?
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 03.10.2010 (Вс) 17:11

Пока некогда.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 03.10.2010 (Вс) 19:28

Это скорее больше означает что никогда чем позже...


Есть у кого-нибудь уже скаченный?
Или где находится упомянутый проект от GSerg-а и Темыча?
Пишите жизнь на чистовик.....переписать не удастся.....

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 412
Зарегистрирован: 19.11.2008 (Ср) 20:10
Откуда: Санкт-Петербург

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение VBTerminator » 05.10.2010 (Вт) 19:11

SLIM, выложил инсталлятор FireNativeDLL.

Обновлено: предыдущая ссылка на Народе стухла, поэтому выкладываю файл в виде вложения.
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось VBTerminator 20.11.2011 (Вс) 10:51, всего редактировалось 4 раз(а).

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 06.10.2010 (Ср) 18:43

Огромное спасибо!!!
Пишите жизнь на чистовик.....переписать не удастся.....

sergio
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 12
Зарегистрирован: 08.01.2008 (Вт) 3:28

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение sergio » 09.03.2011 (Ср) 23:58

Здравствуйте.
Есть небольшой вопрос по использованию FireNativeDLL. В тестовой библиотеке ( мною созданной ) имеется две процедуры. одна из них показывает msgbox, вторая должна выводить форму. С msgbox все ок :) А с формой - нет. Подключая dll через Declare, при вызове процедуры ( её код: frmLib.Show ) форма загружается. А при подключении через LoadLibrary - слетает VB. Буду признателен если подскажете как решить эту проблему.
Заранее спасибо.
У вас нет доступа для просмотра вложений в этом сообщении.
Mongolian Chop Squad

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 10.03.2011 (Чт) 5:38

Ну надо же.

Потому что любая процедура/функция, которая вызывается через CallWindowProc, должна обязана иметь 4 параметра и простой тип возврата.

По поводу вызова функции по адресу через CallWindowProc — это плохой способ, а вот хороший.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 10.03.2011 (Чт) 6:45

Хакер, скажи, как заюзать библу FNDLL например в сях или делфях? У меня вылетает с ошибкой.
Пишите жизнь на чистовик.....переписать не удастся.....

sergio
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 12
Зарегистрирован: 08.01.2008 (Вт) 3:28

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение sergio » 10.03.2011 (Чт) 9:38

Использовал Ваш модуль вызова функций по указателю, но проблема осталась. При вызове процедуры показа окна из библиотеки - все так же падает VB.
А на счет
процедура/функция, которая вызывается через CallWindowProc, обязана иметь 4 параметра
я читал про это, но в первом моем вложении она вызывает ( наобум :) ) процедуру Test() без параметров. И вроде все работает. Ну да ладно, мне больше понравился Ваш модуль. Вот тока проблема с окнами. Подскажите как решить.

Заранее спасибо.
У вас нет доступа для просмотра вложений в этом сообщении.
Mongolian Chop Squad

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 10.03.2011 (Чт) 11:10

  • Найден недостаток (непродумка) в FNDLL.
    Собственно, для решения твоей проблемы нужно закомментировать 3 строки кода в исходнике FNDLL:
    Код: Выделить всё
           ' .FileImage(CodeWriter) = &H52        ' push  edx
           ' .FileImage(CodeWriter) = &HFF        ' call [edx]
           ' .FileImage(CodeWriter) = &H11

    (это вызов IUnknown::Release)
    и исправить вот это:
    Код: Выделить всё
            .FileImage(CodeWriter) = &H75
            .FileImage(CodeWriter) = &H2D

    на это:
    Код: Выделить всё
            .FileImage(CodeWriter) = &H75
            .FileImage(CodeWriter) = &H2A

    (это коррекция jmp-инструкции с учётом убранных инструкций).
  • Найден баг в модуле для вызова функций по указателю. Удивляюсь, почему никто раньше об этом не сказал: никто не использовал мой модуль совместно с обычным Declare (для вызова API)?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1598
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение arthur2 » 10.03.2011 (Чт) 17:43

А снова выложить FNDLL ты не хочешь? А то сколько уже времени ссылка битая :(
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 10.03.2011 (Чт) 17:58

Хочу сделать всецело новый FNDLL :)

Дело в том, что багфикс указанным методом порождает новую проблему: утечку памяти. Этот самый Release, который мы закоментировали, нужно делать по DLL_PROCESS_DETACH. То и есть и новую ячейку в секцию данных в т.н. в рамках проекта «кусочек данных» нужно добавлять, чтобы хранить ссылку на объект.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 10.03.2011 (Чт) 22:43

а на мой вопрос?
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 10.03.2011 (Чт) 23:36

Вопроса нет.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 11.03.2011 (Пт) 1:24

1. Можно ли использовать библиотеку как обычную Native кроме как в VB?
2. Если да, то что особого нужно сделать? (просто так через LoadLibrary и GetProcAddress не получается, вылетает)
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 11.03.2011 (Пт) 9:05

SLIM писал(а):1. Можно ли использовать библиотеку как обычную Native кроме как в VB?

Из любого языка. И даже не из языка (из rundll.exe можно).

SLIM писал(а):2. Если да, то что особого нужно сделать? (просто так через LoadLibrary и GetProcAddress не получается, вылетает)

Импортировать любыми доступными средствами языка. Не вылетит.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 12.03.2011 (Сб) 17:45

Не знаю что я не так делаю. Вот скрины

Изображение


Изображение


Изображение


Изображение
Последний раз редактировалось SLIM 12.03.2011 (Сб) 19:45, всего редактировалось 1 раз.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 12.03.2011 (Сб) 18:46

Мелкоскопа для прочтения микроскопического текста на скриншотах крайне низкого разрешения, последующего анализа исходного кода библиотеки и хост-программы а так же текстового описания ошибки, и установления причины ошибки и методов её устранения в наличии не имею.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 12.03.2011 (Сб) 19:45

Так подойдет?

UPD::
К слову. Через Declare в VB работает, через LoadLibrary, GetProcAddress, CallWindowProc в VB работает.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 12.03.2011 (Сб) 19:56

По-поводу первого скриншота: подтвердить, что при LastError=998 истинно MyLib = 0. Иначе LastError ничего не значит.
SLIM писал(а):К слову. Через Declare в VB работает, через LoadLibrary, GetProcAddress, CallWindowProc в VB работает.

И не работает не в VB теми же методами?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 12.03.2011 (Сб) 20:59

Хакер писал(а):По-поводу первого скриншота: подтвердить, что при LastError=998 истинно MyLib = 0. Иначе LastError ничего не значит.

Изображение
Хакер писал(а):И не работает не в VB теми же методами?

Ну если бы загружалась dll, я бы попробовал вызвать через CallWindowProc, но до вызова пока не доходит.
Попробовать в других языках пока не успел. Могу в Builder попробовать.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 12.03.2011 (Сб) 21:06

По первому: сведения о ОС, АВ в студию. Код для проверки — в студию. Проверить на Win XP.
По второму: проверить то, что работает через Declare под VB в скомпилированном виде.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение SLIM » 12.03.2011 (Сб) 21:34

1. ОС Windows 7
код:
Код: Выделить всё
#include "stdafx.h"
#include "windows.h"


int main(int argc, char* argv[])
{
   HMODULE MyLib;
   FARPROC pFunction;
   MyLib = LoadLibrary(L"c:\\StandardDLL1.dll");
   DWORD d = GetLastError();
   if(MyLib)
   {
      pFunction = GetProcAddress(MyLib, "ff");
      pFunction();

      FreeLibrary(MyLib);
   }
}

На Win XP работает!!! (ранее просто не проверял)


Хакер писал(а):По второму: проверить то, что работает через Declare под VB в скомпилированном виде.

Во вложении 2 exe - с LoadLibrary и с Declare, скомпилированные в VB. Оба работают.

UPD::
Сама библа во втором вложении
У вас нет доступа для просмотра вложений в этом сообщении.
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16107
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: [FireNativeDLL] Создание полноценных DLL на Visual Basic

Сообщение Хакер » 12.03.2011 (Сб) 21:37

Значит проблема в том, что только под Windows 7 при использовании С(++) в среде VS20УГ LoadLibrary не хочешь загружать библиотеку?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.След.

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

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

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

    TopList