powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Прошу помощи [создание dll (C++)]
16 сообщений из 16, страница 1 из 1
Прошу помощи [создание dll (C++)]
    #38533947
zup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zup
Гость
Всем ку!! Простите за такой недофлуд но в поиске инфы не нашел... Сразу говорю ПОСТ не про вирусы ))) а то знаю я вас..


И так есть некое приложение


автор#include <iostream>
using namespace std;

int main ()
{
cout << "Hello world!!!\n";
return 0;
}




И исчо есть дллка в которой внутри кода віполняется:
авторDLLIMPORT void HelloWorld ()
{
MessageBox (0, "Hello World from DLL!\n", "Hi!", MB_ICONINFORMATION);
}



И так берем в OllyDbg открываем hello_world.exe и внедряем туды hello_world.dll
авторcall dword ptr [40606c] -> вызов функции DLLIMPORT'a в частности HelloWorld()



Ну и знатокам вопрос...

Вот все у меня работает все хорошо...

При запуске сначала вылетакт msgbox из дллки и следом за ней вылетает консолька с красивым "Hello World!";

Но вот вопрос
Dllка свое быстренько отрабатывает и уходит а при попытке сделать цикл (естесственно бесконечный) на подобие :

авторwhile(true) {

}



происходит чудесное искусственное зависание
Т.е. при запуске приложения HelloWorld.exe => вызов HelloWorld.dll А дольше бесконечный цикл и естесственно ничего дальше не идет ...

Как сделать так что бы Дллка запускалась и подпрограмма дллки жила своей жизнью.. И после убийства мамочки процесс детеныш тоже умер??
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533956
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zup,






И так берем в OllyDbg открываем hello_world.exe и внедряем туды hello_world.dll автор
call dword ptr [40606c] -> вызов функции DLLIMPORT'a в частности HelloWorld(

поясни, что это все значит.
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533959
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И после убийства мамочки процесс детеныш тоже умер?


нет там никаких дочерних процессов и "мамочек".
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533960
zup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zup
Гость
MasterZiv,
ну как бы инжектим что ли... а в Ollydbg вызываем функцию в дллке ранее написанную :)
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533963
zup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zup
Гость
MasterZivКак сделать так что бы Дллка запускалась и подпрограмма дллки жила своей жизнью.. И после убийства мамочки процесс детеныш тоже умер??
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533965
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zup,

ну и опубликуй полный код пожалуйста.
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533970
zup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zup
Гость
дык это и так полные коды ...

идешь в "file->new->project->dll" (HelloWorld[Template]);

в vcpp есть по крайней мере тупой шаблон но я покажу что то даст? о_О

dll.h#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */


class DLLIMPORT DllClass
{
public:
DllClass();
virtual ~DllClass(void);

private:

};


#endif /* _DLL_H_ */





dllmain.cpp/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>


DllClass::DllClass()
{

}


DllClass::~DllClass ()
{

}

DLLIMPORT void HelloWorld ()
{
MessageBox (0, "Hello World from DLL!\n", "Hi!", MB_ICONINFORMATION);
}

BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;

case DLL_PROCESS_DETACH:
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;
}

/* Returns TRUE on success, FALSE on failure */
return TRUE;
}









Блин помогите просто из функции вызвать/создать новый поток (пусть криво 2+2 = 5) я дальше сам пойду... Я просто не знаю куда копать


спс
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533976
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533977
zup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zup
Гость
Dima T,

Кхм причем тут почитай??
И причем тут внедрение если я пишц "ВСЕ ВНЕДРЯЕТСЯ И ВЫПОЛНЯЕТСЯ ХОРОШО!!"

Ты можешь пример мультипоточности кинуть?? Или учебниками только тыкать будешь?
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533978
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты можешь пример мультипоточности кинуть??

А при чём тут многопоточность ?
Тебе DLL или многопоточность?

К тому же, примеров в MSDN и вообще в сети навалом, мог бы найти и сам.
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533982
zup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zup
Гость
Всем спасибо драп хороший крыша хлопает в ладоши!

Сам спросил - сам ответил:

Вот если кому надо синхронизация потоков через TThread CODE__fastcall TEnumeratorThread::TEnumeratorThread(TMemo* Memo)
: TThread(true)
{
/* Initialize internal fields */
m_Memo = Memo;
m_CurrNbr = 0;
m_Stop = 0;
}

void __fastcall TEnumeratorThread::Execute()
{
/* Repeat the loop until the flag says otherwise. */
while (!m_Stop)
{
/* Wait for 100 milliseconds. */
Sleep(100);

/*
Run the AddNewNumberToMemo procedure on the main thread.
This makes it safe to access GUI from this thread.
*/
Synchronize(AddNewNumberToMemo);
}

m_Stop = 0;
}

void __fastcall TEnumeratorThread::GentleStop()
{
/* Set the flag to 1. */
InterlockedIncrement(&m_Stop);

/* Wait for this thread to finish executing */
this->WaitFor();
}

void __fastcall TEnumeratorThread::AddNewNumberToMemo()
{
/* Increase the current number and add it to the memo. */
m_CurrNbr++;
m_Memo->Lines->Add(IntToStr(m_CurrNbr));
}












Всем флудерам спасибо!! Подняли настроение ))) бай бай!!
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533985
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zup Ты можешь пример мультипоточности кинуть?? Или учебниками только тыкать будешь?
По оглавлению тяжело пробежаться?
ГЛАВА 6 Базовые сведения о потоках
Читай про CreateThread(), там же примеры.

PS Книжку советую целиком почитать.
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533987
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zupдык это и так полные коды ...
в vcpp есть по крайней мере тупой шаблон но я покажу что то даст?


Даст то, что мы сможем ткнуть тебя носом в конкретную строку твоего кода и сказать, что там не так.

zupБлин помогите просто из функции вызвать/создать новый поток

Ты разберись сначала, что тебе нужно: DLL или потоки, и как это друг с другом связано.

Поток создаётся очень просто одним вызовом _beginthreadx, указав ему функцию потока.
Описание и примеры использования можно найти легко в MSDN.

C DLL не так всё просто, поэтому и хочется услышать, что тебе нужно и увидеть пример кода, чтобы долго не объяснять.
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38533996
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T ГЛАВА 6 Базовые сведения о потоках

PS Книжку советую целиком почитать.

Просто феерически говёный скан книги...
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38534002
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПросто феерически говёный скан книги...
Ткнул в первый попавшийся. Есть другие сканы
...
Рейтинг: 0 / 0
Прошу помощи [создание dll (C++)]
    #38534192
Фотография Judo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dll это просто тупо выделение кода. Поток можешь создать и без нее. Прибьешь мастер грохнутся и дочерки с твоим циклом на этот счет не переживай. Да и если потоков несколько не забудь про их синхронизацию (если надо)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Прошу помощи [создание dll (C++)]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]