Форум программистов, компьютерный форум CyberForum.ru

Запуск DLL в стороннем приложении - C++

Восстановить пароль Регистрация
 
skMaster
3 / 3 / 2
Регистрация: 26.02.2013
Сообщений: 38
17.11.2013, 00:57     Запуск DLL в стороннем приложении #1
Всем доброго времени суток! Пробую создать свою DLL-ку и добавить импорт в сторонне приложение!
Пишу в CodeBlocks. В таблицу импорта добавляю через CFF Explorer. В си++ я не очень шарю, поэтому возникла куча вопросов!
Вот так примерно сейчас выглядит код моей DLL-ки:
Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "main.h"
 
using namespace std;
 
bool run = false;
 
DWORD WINAPI PROCESS_ATTACH(LPVOID);
 
extern "C" DLL_EXPORT BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    switch (fdwReason)
    {
        case DLL_PROCESS_ATTACH:
            if (!run) CreateThread (0, 0, PROCESS_ATTACH, 0, 0, 0);
            break;
 
        case DLL_PROCESS_DETACH:
            run = false;
            MessageBoxA(0, "dll выгружена", "test", 0);
            break;
 
        case DLL_THREAD_ATTACH:
            break;
 
        case DLL_THREAD_DETACH:
            break;
    }
    return TRUE;
}
 
DWORD WINAPI PROCESS_ATTACH(LPVOID)
{
    run = true;
    long pid = GetCurrentProcessId();
    MessageBoxA(0, "dll загружена + запущен наш поток", "test", 0);
 
    //ОСНОВНОЙ ПОТОК
 
    ExitThread(0);
    return 0;
}
DLL-ка вроде работает, стороннее приложение ее прикрасно кушает, и выводит меседж боксы при старте и при завершении программы! С потоком тоже вроде всё норм, меседж бокс вываливается и не тормозит поток программы.
Ну и собственно первые вопросы:
1) Как из "ОСНОВНОГО ПОТОКА" получить хоть какието сведения о процессе, который загрузил DLL-ку?
2) Как их вывести допустим в тотже MessageBoxA? (просто для наглядности чтобы было видно что оно работает. с GetCurrentProcessId() чтото ничего неполучается, выводит всякий мусор)
3) Как в DLL-ку добавить форму и вывести ее на экран из "ОСНОВНОГО ПОТОКА"?

Не по теме:

А также интересует:
4) Как на форме в качестве фона установить картинку?
5) Как создать файл ресурсов?
6) Как из файла ресурсов выгрузить на диск EXE-шник и запустить его из "ОСНОВНОГО ПОТОКА"?
7) Как получить HWID данные компьютера в "ОСНОВНОМ ПОТОКЕ"? (номер мамки, ид жестких дисков, версию биоса и прочие.)
8) Как получить список всех загруженных DLL-ок в процессе запустившем моб DLL-ку?
9) Подкиньте плиз инфо по сокетам в С++ (если можно с элементарными примерами) и можно ли будет это затолкать в мою DLL-ку?
10) Как в C++ работать с WMI? (Понятных мне примеров найти несмог) Пните в каком направлении посмотреть))
11) Что почитать про указатели в C++ ???


Сам пишу на VB6. Там проблем с реализацией всех этих вопросов у меня не возникает. Проблемка возникает только с тем что программы написанные НЕ на VB6 отказываются кушать DLL написанные на VB6. Ну и VB6 н дружит с многопоточностью. Вот и решил капнуть в сторону С++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 00:57     Запуск DLL в стороннем приложении
Посмотрите здесь:

Поддержка скинов в приложении C++
C++ Задержка в приложении
C++ Использование CSS, JS в приложении
C++ Задать размер массива в стороннем файле
Запуск программы невозможен так как на компьютере отсутствует libgcc-s-sjlj-1.dll. Попробуйте переустановить программу C++
C++ Динамическое подключение VC++ (2012) DLL в приложении C++Builder (RAD XE5)
Указатели в VC++ (2010) DLL и в приложении C++Builder (RAD XE4) C++
C++ DLL компилируется, но не вызывается в приложении C#
C++ Меню в консольном приложении
Заменить курсор в стороннем приложении C++
Вывод в консольном приложении C++
Значение DLL_API в стороннем коде C++

Искать еще темы с ответами

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

Текущее время: 01:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru