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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить номер столбца содержащий наименьший элемент матрицы через массив http://www.cyberforum.ru/cpp-beginners/thread1009773.html
Определить номер столбца содержащий наименьший элемент матрицы через массив
C++ Есть у кого-то любая игра на С++? привет всем есть у ковото любая игра на С++? (напривер танчики,змейка,ббоунс ) или там например програма БРОНИРОВКИ билетом или чтото в том роде? можете кинуть? пожаслусто извините за мой Русский. сам не из России. http://www.cyberforum.ru/cpp-beginners/thread1009743.html
Перегрузка операторов. Преобразование типов C++
Привет всем! Я относительно недавно начал программировать на с++. Изучаю его по книжке Лафоре и дошел до темы "Перегрузка операторов.Преобразование типов" Итак вот код: class cl1//создаем какой-то класс { int var1; public: cl1():var1(0){}// 2 конструктора cl1(int f):var1(f){} operator float() const// тут мы перегрузили оператор float???!!
C++ Определить, сколько раз встретилось в предложении введенное с клавиатуры слово
Написать программу, которая считывает текст(text.txt) из файла и выводит его на экран, после каждого предложения добавляя, сколько раз встретилось в нем введенное с клавиатуры слово.Программа на С++. У кого нибудь есть идеи насчет задачи?:cry:
C++ Сумма элементов главной диагонали двумерного массива(матрицы) http://www.cyberforum.ru/cpp-beginners/thread1009708.html
Суть в том, что задаётся размерность матрицы (количество строк(i) равно количеству столбцов(j)), после чего складываются элементы у которых i=j. Вот код на С++. В чём ошибка и как исправить? Заранее благодарю за помощь. #include <iostream> using namespace std; int** creat(int &n) {cout <<"n="; cin >>n; int **mas=new int *; for (int i=0; i<n; ++i) mas=new int ; for (int i=0; i<n; ++i) ...
C++ Сигнал-слот Всем привет. Хотел уточнить один факт, допустим дан код: Класс pole.h class pole : public QFrame { Q_OBJECT public: explicit pole(QWidget *parent = 0); подробнее

Показать сообщение отдельно
skMaster
3 / 3 / 2
Регистрация: 26.02.2013
Сообщений: 38
17.11.2013, 00:57     Запуск DLL в стороннем приложении
Всем доброго времени суток! Пробую создать свою 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 н дружит с многопоточностью. Вот и решил капнуть в сторону С++.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru