Сейчас на форуме: zds (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› Подключение чужой DLL к моей программе. |
Посл.ответ | Сообщение |
|
Создано: 03 мая 2014 20:51 · Поправил: Oxigenion · Личное сообщение · #1 Здравствуйте! Имеется .dll известной программы , в целях конфиденциальности не буду оглашать её название, а просто обойдусь тем, что "ну есть такая вот .dll" . Нужно вытащить от-туда несколько функций и подключить к моей программе (работаю в Delphi). И так , описываю : Чтобы вытащить экспортируемые функции , пользуюсь спец.утилитой входящей в состав дельфи , либо CFF Exolorer . Ну вытащил, а как подключить? Там вот такое чудо ![]() Во-первый возникает вопрос , что такое QObject,вопросы,собаки и т.д. ? Что это всё значит и как вообще правильно подключать это всё дело? Во - вторых: Вот функции например: ![]() Пытался так (хотя параметров не знаю. угу чтобы их вытащить надо дизассемблить, чего я не умею): var dll : THandle; see : procedure ();stdcall; begin @see:=nil; dll:=LoadLibrary('xName.dll'); if dll<>0 then begin @see:=GetProcAddress(dll,'Полное имя функции , как в прошлой картинке'); if @see<>nil then begin see(); end else begin ShowMessage('NotSearchFunc'); exit; end; end else begin ShowMessage('Nothing'); exit; end; end; Думаю и это не правильно. И вот что получается : ![]() Помогайте ребят. Надеюсь всё более менее понятно. ![]() |
|
Создано: 03 мая 2014 21:06 · Личное сообщение · #2 |
|
Создано: 03 мая 2014 21:46 · Поправил: F_a_u_s_t · Личное сообщение · #3 Oxigenion пишет: Помогайте ребят. Надеюсь всё более менее понятно. В чем помогать? QObject является классом, собственно гугл об этом знает. Код корректен, если речь о декорации функций, то да, так и записывать со всеми собаками, вопросами и закорючками, параметры функции никто за вас искать не будет. Топик бредовый. ADD: За вас погуглил, ![]() |
|
Создано: 03 мая 2014 23:54 · Личное сообщение · #4 Нет , нет. Ни в коем случае , я не хотел чтобы вы за меня искали параметры. Просто я уже битый второй месяц маюсь, как же вызвать эту функцию так чтобы она работала. У знакомого получилось, но он не делится со мной. Ну вот подключил я .dll и вызвал функцию , как на скриншоте выше, а там чудо ошибка. Как же быть? Из-за чего она так? И да, если уж затронули тему с параметрами, нет, и еще раз нет, не ищете за меня, просто помогите мне , направьте на путь , как же искать (вытаскивать) эти самые параметры? Уж очень нужно мне использовать эти функции. ![]() |
|
Создано: 04 мая 2014 00:03 · Личное сообщение · #5 |
|
Создано: 04 мая 2014 01:04 · Личное сообщение · #6 |
|
Создано: 04 мая 2014 01:47 · Поправил: F_a_u_s_t · Личное сообщение · #7 Oxigenion пишет: Просто я уже битый второй месяц маюсь, как же вызвать эту функцию так чтобы она работала Дружище пойми правильно, здесь не против помочь, но ты дал ровным счетом - ничего, если библиотека аналогична QT, то в delphi вызов будет аналогичен вызову любого другого метода ( члена класса ) из плюсов. Смотри wrapper любой c++ библиотеки ( которая экспортирует методы ) для delphi и делай по образу и подобию. Если бы привел прототипы, то перевел бы в delphi если конечно не сильно толсто. Ну а так, еще одна Вызов функции <> вызов метода класса. Самый простой для вас вариант это сишная обертка, пишите что то типа этого: type foo( param value ) { class_example example; bla bla bla return result; } И уже это используйте в delphi. ![]() |
|
Создано: 04 мая 2014 01:53 · Личное сообщение · #8 |
|
Создано: 04 мая 2014 01:57 · Личное сообщение · #9 |
|
Создано: 04 мая 2014 02:37 · Поправил: Модератор · Личное сообщение · #10 SetEncodedUrl и SetEncodedUserName похожи на соответствующие функции из void QUrl::setEncodedUrl ( const QByteArray & encodedUrl, ParsingMode parsingMode ) Constructs a URL by parsing the contents of encodedUrl using the given parsingMode. void QUrl::setEncodedUserName ( const QByteArray & userName ) Sets the URL's user name to the percent-encoded userName. The userName is part of the user info element in the authority of the URL, as described in setUserInfo(). Note: this function does not verify that userName is properly encoded. It is the caller's responsibility to ensure that the any delimiters (such as colons or slashes) are properly encoded. ----- http://ntinfo.biz ![]() |
|
Создано: 04 мая 2014 04:29 · Поправил: Oxigenion · Личное сообщение · #11 |
|
Создано: 04 мая 2014 04:34 · Личное сообщение · #12 |
|
Создано: 06 мая 2014 08:07 · Поправил: MNV · Личное сообщение · #13 setEndFrame это метод класса QTimeLine, setUser это метод класса QAuthenticator. http://qt-project.org/doc/qt-4.8/qauthenticator.html Сильно подозреваю, что хрен оно заработает без наличия экземпляра QApplication, как и большинство классов в Qt. Решается написанием враппера на Qt, в котором делается экземпляр QApplication и плоский интерфейс к нужному объекту. ![]() |
|
Создано: 07 мая 2014 02:19 · Поправил: F_a_u_s_t · Личное сообщение · #14 |
![]() |
eXeL@B —› Программирование —› Подключение чужой DLL к моей программе. |