Thread DLL Fideldido und fideldidi

12/17/2014 16:45 Terrat#1
Hali halo eine fröhliche fidelidi und fridelido,
[Only registered and activated users can see links. Click Here To Register...]

da ich mit vs 2010 arbeite und mir dort sehr std::thread fehlt hab ich euch mal ein Micro dllchen gemacht (8KB) mit einer funktion:)

"LIB"
Code:
#define TKERNEL_DLLMODULENAME "Thread_Kernel.dll"
void TKERNEL_VoidThread(void RunMeInThread())
{
	HINSTANCE hGetProcIDDLL = LoadLibrary(TKERNEL_DLLMODULENAME);
	FARPROC lpfnGetProcessID = GetProcAddress(HMODULE(hGetProcIDDLL), "CreateVoidThread");
	typedef void(__stdcall * pICFUNC)(void());
	pICFUNC MyThreadFunction;
	MyThreadFunction = pICFUNC(lpfnGetProcessID);
	MyThreadFunction(RunMeInThread);
	FreeLibrary(hGetProcIDDLL);
}
"Beispiel"
Code:
void m()
{
	while (true)
	{ 
		MessageBox(0, "YEA", "YEA", 0);
	}
	cout << "i called with thread *_*" << endl;
}

#define TKERNEL_DLLMODULENAME "Thread_Kernel.dll"
void TKERNEL_VoidThread(void RunMeInThread())
{
	HINSTANCE hGetProcIDDLL = LoadLibrary(TKERNEL_DLLMODULENAME);
	FARPROC lpfnGetProcessID = GetProcAddress(HMODULE(hGetProcIDDLL), "CreateVoidThread");
	typedef void(__stdcall * pICFUNC)(void());
	pICFUNC MyThreadFunction;
	MyThreadFunction = pICFUNC(lpfnGetProcessID);
	MyThreadFunction(RunMeInThread);
	FreeLibrary(hGetProcIDDLL);
}



int main()
{
	TKERNEL_VoidThread(m);
	while (true)
		Sleep(1);
}
Download:
[Only registered and activated users can see links. Click Here To Register...]

Und für die die denken das sich sogar in 8 kb ein Rootkit versteckt:
[Only registered and activated users can see links. Click Here To Register...]

Fröhliche Feiertage
Wer hier irgendwelche Ansprüche an Rechtschreibung stellt wird ignoriert bei 14 Zeilen "Code" ist das ja wohl egal.
12/17/2014 16:59 Schlüsselbein#2
Wie wird aufgeräumt? Wo bekomme ich ein Handle auf den Thread? Warum sollte ich deine DLL benutzen, statt direkt die entsprechenden Funktionen des Betriessystems zu aufzurufen (die mir ausserdem noch viel mehr Möglichkeiten bieten)? Wo ist der bezug zu std::thread?
12/17/2014 17:01 Terrat#3
Quote:
Originally Posted by Schlüsselbein View Post
Wie wird aufgeräumt? Wo bekomme ich ein Handle auf den Thread? Warum sollte ich deine DLL benutzen, statt direkt die entsprechenden Funktionen des Betriessystems zu aufzurufen (die mir ausserdem noch viel mehr Möglichkeiten bieten)? Wo ist der bezug zu std::thread?
Lies mal oben das war nur hingeklatscht da ich einfach schnell nen "micro wrapper" für 2010 brauchte hier ist falls wer es will "Source"

Code:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <thread>
BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{
	return TRUE;
}
extern "C"
void  __declspec(dllimport)  CreateVoidThread(void VoidOfThread());
void CreateVoidThread(void VoidOfThread())
{
	std::thread CVT(&VoidOfThread);
	CVT.detach();
}
12/17/2014 17:03 Devsome#4
Quote:
Originally Posted by Dreamsläps View Post
Lies mal oben das war nur hingeklatscht[...]
^ [Only registered and activated users can see links. Click Here To Register...]

Lies mal oben die Threads, sind nicht nur hingeklatscht ;)
12/17/2014 17:03 Terrat#5
Quote:
Originally Posted by Devsome View Post
^ [Only registered and activated users can see links. Click Here To Register...]
Nicht gesehen Ü:Ü kann vor mir aus geclosed werden oder net

Quote:
Originally Posted by Devsome View Post
^ [Only registered and activated users can see links. Click Here To Register...]

Lies mal oben die Threads, sind nicht nur hingeklatscht ;)
Meinte damit mein Thread *~* Mimimi
12/17/2014 17:07 th0rex#6
Geht boost::thread nicht in vs 2010 ? Musste halt boost Bibliotheken benutzen. Sind aber flexibler als deins.
12/17/2014 17:10 Terrat#7
Quote:
Originally Posted by omitma View Post
Geht boost::thread nicht in vs 2010 ? Musste halt boost Bibliotheken benutzen. Sind aber flexibler als deins.
[Only registered and activated users can see links. Click Here To Register...]
Lies doch mal oben :)
12/17/2014 17:12 th0rex#8
Und wenn man den thread nicht detachen will ... ? Wenn man mal eine Funktion hat, die nicht deinem vorgegeben Funktionstypen entspricht ? Wenn man, wie Schlüsselbein schon sagte, einfach das thread Objekt haben möchte ?
12/17/2014 17:14 Terrat#9
Quote:
Originally Posted by omitma View Post
Und wenn man den thread nicht detachen will ... ? Wenn man mal eine Funktion hat, die nicht deinem vorgegeben Funktionstypen entspricht ? Wenn man, wie Schlüsselbein schon sagte, einfach das thread Objekt haben möchte ?
Wut wut ?
Wofür ein Thread wen mal soweiso mit join wd reingeht ? Da kann man auch einfach selber callen...
Aber wie gesagt nur hingeklatscht und für meine Zwecke reicht es
12/17/2014 17:15 Schlüsselbein#10
Quote:
Lies mal oben das war nur hingeklatscht da ich einfach schnell nen "micro wrapper" für 2010 brauchte hier ist falls wer es will "Source"
Habe ich gelesen. Trotzdem sind meine Fragen nocn unbeantwortet.

Quote:
Aber wie gesagt nur hingeklatscht und für meine Zwecke reicht es
Aus Interesse: Für welche Zwecke?
12/17/2014 17:15 th0rex#11
Vielleicht, weil man an einem bestimmten Zeitpunkt den Rückgabewert braucht, aber schon davor mit der Arbeit beginnen will ? (Mit Rückgabewert meine ich nicht return. Es kann auch einfach etwas irgendwo gesetzt werden oder so)
12/17/2014 17:18 Terrat#12
Quote:
Originally Posted by Schlüsselbein View Post
Habe ich gelesen. Trotzdem sind meine Fragen nocn unbeantwortet.


Aus Interesse: Für welche Zwecke?
In vs2010 ohne include(ja ne dll ist jetzt auch net das ware aber war halt schnell gemacht) so simpel wie möglich einfach immer schnell ein thread erstellen. ? Funkt perfekt bei mir
12/17/2014 17:23 Schlüsselbein#13
Warum nicht [Only registered and activated users can see links. Click Here To Register...]? Dann musst du schon keine DLL mitliefern und länger wird der Code dadurch auch nicht als deiner.
12/17/2014 17:27 Terrat#14
Quote:
Originally Posted by Schlüsselbein View Post
Warum nicht [Only registered and activated users can see links. Click Here To Register...]? Dann musst du schon keine DLL mitliefern und länger wird der Code dadurch auch nicht als deiner.
Mag ich einfach nicht wie gesagt braucht ihr ja nicht nutzen :)
12/17/2014 17:34 Schlüsselbein#15
Warum ziehst du dich mit der Aussage "braucht ihr ja nicht nutzen" zurück? Keiner will dich hier in die Ecke drängen. Und dass man deine DLL nicht benutzen muss ist ja eigentlich selbstverständlich, oder?

Erwarte einfach nur, dass man Fragen stellt, wenn du hier was veröffentlichst. Wenn du nicht bereit bist, auf diese einzugehen, solltest du das mit dem Veröffentlichen nochmal überdenken.

Quote:
Mag ich einfach nicht
Warum?