Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Что надо написать, чтобы DLL на C++6.0 "читалась"  VB6.0?

Ответить
Настройки темы
Что надо написать, чтобы DLL на C++6.0 "читалась"  VB6.0?
bde bde вне форума

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Мне ужасно надо оптимизировать математику в VB, для этого нужна библиотека, которая "прочтётся" Бейсиком, то есть он найдёт точку входа в DLL. Так вот, приведите, пожалуйста, кто может, пример кода, который после компиляции из C++, даст подключаемую библиотеку.

-------
Born to Devastate Evil


Отправлено: 20:18, 08-12-2003

 

Аватара для Guest

Guest


Профиль | Цитировать


См.файл win32api.txt в каталоге установки Vb\Winapi и используй ApitextViewer. Там многие объявления есть. Правда, есть некоторые ошибки и зависимость от версий Dll. При использовании более старых версий какие-то точки входа могут отсутстивовать. Если нужны специфичные DLL, нужна документация по поводу их объявления

Отправлено: 16:34, 16-01-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Guest

Guest


Профиль | Цитировать


создаешь dll wizard(ом) и  урезаешь до такого вида:

#include stdafx.h
BOOL APIENTRY DllMain( HANDLE hModule,
                      DWORD  ul_reason_for_call,
                      LPVOID lpReserved
                    )
{
   switch (ul_reason_for_call)
   {
       case DLL_PROCESS_ATTACH:
       case DLL_THREAD_ATTACH:
       case DLL_THREAD_DETACH:
       case DLL_PROCESS_DETACH:
           break;
   }
   return TRUE;
}


int __stdcall FuncTion(int x, int Y)
{
return x*y;
}

потом создаешь текстовый файл с расширением *.def следующего содержания:

LIBRARY      "MyDll.DLL"
EXPORTS
       FuncTion    @10

собираешь и кладешь рядом с проектом

Отправлено: 14:01, 25-06-2004 | #3


Аватара для Guest

Guest


Профиль | Цитировать


С примером сложновато, но советую написать DLL-ку на С, по типу той, что wizard в visual c++ делает. Нежелательно писать на С++, т.к. вместо функции MyFunc при искажении имен компилятором С++ получится что-то вроде MyFunc$afqqq и т.п. Такую функцию VB вряд ли найдет в DLL по имени MyFunc

Отправлено: 05:33, 18-07-2004 | #4

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


ну вот, сплошная дискуссия гостей, не знаешь к кому и обращаться
Так вот, Guest 195.239.140.* , в примере Guest 195.16.57.* как раз и указано
Цитата:
потом создаешь текстовый файл с расширением *.def следующего содержания:

LIBRARY * * *"MyDll.DLL"
EXPORTS
* * * FuncTion * *@10

собираешь и кладешь рядом с проектом
Это как раз и относится к проблеме искажения имен: чтобы его обойти *и подключают при линковке специальный DEF-файл, перечисляющий имена, которые не должны измениться.

bde (вот еще немножко документации (к help-у по этому поводу)

Отправлено: 14:15, 18-07-2004 | #5

bde bde вне форума Автор темы

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


ОК, спасибо..

А я эту проблему по-другому "решил", хотя ошибки хоть и возникают, но их легко обойти. В VB мона написать так:

Declare sub AAA lib "MyLib.dll" alias "#1"()

Это значит, что бэйзик будет подразумевать под процедурой ААА первую экспортируемую из DLL-ки. Ну а узнать как процедуры "лежат" в библиотеке не сложно.

-------
Born to Devastate Evil


Отправлено: 10:07, 19-07-2004 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Что надо написать, чтобы DLL на C++6.0 "читалась"  VB6.0?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
EventID - Что это за ошибка "Aclui.dll не был найден" ? R.M.L Microsoft Windows 2000/XP 2 07-06-2009 06:47
компьютер с кнопки "Power" не включается,надо переключить на задней панели SimQ Материнские платы и память 7 05-12-2008 23:18
Что надёжнее: режим "Инкогнито" в Гугл Хром или "ИнПриват" в ИЕ8? roniro Хочу все знать 9 07-11-2008 19:02
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29
" R-Studio " & " Restorer2000 Professional " Что лучше ? UTU Хочу все знать 2 18-07-2006 23:36




 
Переход