<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Prozessstart anzeigen lass für Logdatei]]></title><description><![CDATA[<p>Tag zusammen,<br />
habe folgendes Problem:<br />
Ich programmiere Hobbymäßig mit c++ und wollte mir mal ein eigenes Programm schreiben, dass mir eine Logdatei schreibt in der alle Programmstarts inklusive Uhrzeit aufgelistet werden.<br />
Das erstellen der Logdatei sowie Uhrzeit und Datum eintragen war kein Problem.<br />
Ich habe leider nur keine Ahnung wie ich meinem Programm über einen Start eines anderen Programmes informiere um danach die Eintragung in meine Logdatei zu machen.</p>
<p>Danke im voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273747/prozessstart-anzeigen-lass-für-logdatei</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 14:16:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273747.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Sep 2010 18:44:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sun, 12 Sep 2010 18:46:46 GMT]]></title><description><![CDATA[<p>Tag zusammen,<br />
habe folgendes Problem:<br />
Ich programmiere Hobbymäßig mit c++ und wollte mir mal ein eigenes Programm schreiben, dass mir eine Logdatei schreibt in der alle Programmstarts inklusive Uhrzeit aufgelistet werden.<br />
Das erstellen der Logdatei sowie Uhrzeit und Datum eintragen war kein Problem.<br />
Ich habe leider nur keine Ahnung wie ich meinem Programm über einen Start eines anderen Programmes informiere um danach die Eintragung in meine Logdatei zu machen.</p>
<p>Danke im voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1951701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1951701</guid><dc:creator><![CDATA[Kingmarino]]></dc:creator><pubDate>Sun, 12 Sep 2010 18:46:46 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sun, 12 Sep 2010 19:01:40 GMT]]></title><description><![CDATA[<p>Mit Standard C++ jedenfalls definitiv nicht möglich. Standard C++ weiss nicht einmal was ein Prozess ist. Sag uns welches Betriebsystem du verwendest, dann kann ein Moderator (nicht ich) dich verschieben.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1951707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1951707</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 12 Sep 2010 19:01:40 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sun, 12 Sep 2010 19:45:22 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich benutze windows (7) und es ist eine Win32Konsolenanwendung..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1951715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1951715</guid><dc:creator><![CDATA[Kingmarino]]></dc:creator><pubDate>Sun, 12 Sep 2010 19:45:22 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Mon, 13 Sep 2010 07:55:42 GMT]]></title><description><![CDATA[<p>Microsoft empfiehlt diese Vorgehensweise nicht mehr, weil es andere Möglichkeiten gibt, erwähnt diese anderen Möglichkeiten allerdings nicht. Hier der Link zur <a href="http://support.microsoft.com/kb/197571" rel="nofollow">MSDN</a></p>
<p>Du kannst eine eigene DLL schreiben, die automatisch mitgestartet wird, wenn ein Windows Programm gestartet wird. Diese DLL kann dann in die Log Datei schreiben, wie das Programm heisst, wann es gestartet wurde und wann es beendet wurde.<br />
Um das Laden der DLL zu aktivieren, musst du ihren kompletten Pfad unter<br />
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInitDLLs eintragen.</p>
<p>Eine weitere Möglichkeit wäre das zyklische Pollen der Prozesstabelle mit der Toolhelp32 API, dazu ist aber etwas Verwaltungsaufwand notwendig, um festzustellen, ob neue Prozess dazugekommen oder alte Prozesse beendet worden sind. Ausserdem sind die Start- und Stoppzeiten ungenau mit der Fehlergrößenordnung des Zyklusintervalls.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1951830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1951830</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 13 Sep 2010 07:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Mon, 13 Sep 2010 16:49:18 GMT]]></title><description><![CDATA[<p>ok danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952086</guid><dc:creator><![CDATA[Kingmarino]]></dc:creator><pubDate>Mon, 13 Sep 2010 16:49:18 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Tue, 14 Sep 2010 17:29:32 GMT]]></title><description><![CDATA[<p>sorry bin darus doch nicht sonderlich schlauergeworden...gibt es noch eine andere möglichkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952604</guid><dc:creator><![CDATA[Kingmarino]]></dc:creator><pubDate>Tue, 14 Sep 2010 17:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Tue, 14 Sep 2010 18:00:54 GMT]]></title><description><![CDATA[<p>Kingmarino schrieb:</p>
<blockquote>
<p>...gibt es noch eine andere möglichkeit?</p>
</blockquote>
<p>Ja, aber die ist nicht gerade einfacher und geht über COM und WMI. Hier ist ein fertiges Beispiel, wie man über COM und WMI die Prozess-Starts verfolgt:<br />
<a href="http://msdn.microsoft.com/en-us/library/aa390425.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa390425.aspx</a></p>
<p>Viel Glück <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952615</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 14 Sep 2010 18:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Tue, 14 Sep 2010 18:13:26 GMT]]></title><description><![CDATA[<p>Kingmarino schrieb:</p>
<blockquote>
<p>sorry bin darus doch nicht sonderlich schlauergeworden...</p>
</blockquote>
<p>Wo ist das Problem? du schreibst eine dll die beim prozess-start geladen wird und trägst ihren pfad der registry ein (s.o.).</p>
<p>deine dll könnte zB so aussehen:</p>
<p>dll.cpp:</p>
<pre><code class="language-cpp">#include&lt;windows.h&gt;
#include&lt;fstream&gt;

ofstream os;

void log(DWORD reason)
{

    if(!os.is_open())
    {
        os.open(&quot;C://test//log.txt&quot;);
    }

    switch(reason)
    {
    case DLL_PROCESS_ATTACH:
      os&lt;&lt;&quot;DLL_PROCESS_ATTACH&quot;&lt;&lt;endl;
      break;
    case DLL_PROCESS_DETACH:
      os&lt;&lt;&quot;DLL_PROCESS_DETACH&quot;&lt;&lt;endl;
      break;
    case DLL_THREAD_ATTACH:
      os&lt;&lt;&quot;DLL_THREAD_ATTACH&quot;&lt;&lt;endl;
      break;
    case DLL_THREAD_DETACH:
      os&lt;&lt;&quot;DLL_THREAD_DETACH&quot;&lt;&lt;endl;
      break;

    }
}

BOOL APIENTRY DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserver)
{
    switch(reason)
    {
    case DLL_PROCESS_ATTACH:
      log(reason);
      break;
    case DLL_PROCESS_DETACH:
      log(reason);
      break;
    case DLL_THREAD_ATTACH:
      log(reason);
      break;
    case DLL_THREAD_DETACH:
      log(reason);
      break;
    }
}
</code></pre>
<p>evtl. musst du eben noch ergänzen, dass die Systemzeit mitgeloggt wird.</p>
<p>lg,<br />
andi01.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952621</guid><dc:creator><![CDATA[andi01]]></dc:creator><pubDate>Tue, 14 Sep 2010 18:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Tue, 14 Sep 2010 18:35:07 GMT]]></title><description><![CDATA[<p>ok danke jetzt hab ichs gecheckt:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952639</guid><dc:creator><![CDATA[Kingmarino]]></dc:creator><pubDate>Tue, 14 Sep 2010 18:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Wed, 15 Sep 2010 07:22:13 GMT]]></title><description><![CDATA[<p>Hübscher Nebeneffekt der Methode: Mit einem GetCommandLine() Aufruf in der DLL bekommst du den Prozessnamen inklusive aller Kommandozeileparameter, die man mit den Toolhelp32 Funktionen nicht bekommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952791</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 15 Sep 2010 07:22:13 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Fri, 24 Sep 2010 18:29:54 GMT]]></title><description><![CDATA[<p>Ich habe noch eine Frage dazu.<br />
Ich hab das jetzt genauso gemacht, wie andi01 beschrieben hat. Die DLL wird auch geladen und meine Logfile angelegt, aber es wird nicht geschrieben.<br />
So sieht mein Code aus:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

std::ofstream logstream;

void log(DWORD reason) {
	switch (reason) {
		case DLL_PROCESS_ATTACH:
			{
				PSYSTEMTIME timer = NULL;
				GetLocalTime(timer);
				std::stringstream ss;
				ss &lt;&lt; &quot;Prgoramm gestartet:\n&quot; &lt;&lt; GetCommandLine() &lt;&lt; &quot;:\n&quot; &lt;&lt; timer-&gt;wDay &lt;&lt; &quot;.&quot; &lt;&lt; timer-&gt;wMonth &lt;&lt; &quot;.&quot; &lt;&lt; timer-&gt;wYear &lt;&lt; &quot;; &quot; &lt;&lt; timer-&gt;wHour &lt;&lt; &quot;:&quot; &lt;&lt; timer-&gt;wMinute &lt;&lt; &quot;:&quot; &lt;&lt; timer-&gt;wSecond &lt;&lt; std::endl;
				logstream &lt;&lt; &quot;\n&quot; &lt;&lt; ss.str() &lt;&lt; std::endl;
			}
		case DLL_PROCESS_DETACH:
			{
				PSYSTEMTIME timer = NULL;
				GetLocalTime(timer);
				std::stringstream ss;
				ss &lt;&lt; &quot;Prgoramm beendet:\n&quot; &lt;&lt; GetCommandLine() &lt;&lt; &quot;:\n&quot; &lt;&lt; timer-&gt;wDay &lt;&lt; &quot;.&quot; &lt;&lt; timer-&gt;wMonth &lt;&lt; &quot;.&quot; &lt;&lt; timer-&gt;wYear &lt;&lt; &quot;; &quot; &lt;&lt; timer-&gt;wHour &lt;&lt; &quot;:&quot; &lt;&lt; timer-&gt;wMinute &lt;&lt; &quot;:&quot; &lt;&lt; timer-&gt;wSecond &lt;&lt; std::endl;
				//logstream &lt;&lt; &quot;\n&quot; &lt;&lt; ss.str() &lt;&lt; std::endl;
				logstream &lt;&lt; &quot;test&quot; &lt;&lt; std::endl;
			}
	}
};

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	logstream.open(&quot;C:\\test.log&quot;, std::ios::out | std::ios::app);
	switch (ul_reason_for_call) {
	case DLL_PROCESS_ATTACH:
		log(ul_reason_for_call);
		break;
	case DLL_PROCESS_DETACH:
		log(ul_reason_for_call);
		break;
	}
	logstream.close();
	return true;
}
</code></pre>
<p>Auch wenn ich anstatt dem Stringstream nur ein einfaches &quot;test&quot; schreiben will, klappts nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957028</guid><dc:creator><![CDATA[unwissenderneuling]]></dc:creator><pubDate>Fri, 24 Sep 2010 18:29:54 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sat, 25 Sep 2010 09:11:55 GMT]]></title><description><![CDATA[<p>Hat niemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957199</guid><dc:creator><![CDATA[unwissenderneuling]]></dc:creator><pubDate>Sat, 25 Sep 2010 09:11:55 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sat, 25 Sep 2010 14:52:19 GMT]]></title><description><![CDATA[<p>unwissenderneuling schrieb:</p>
<blockquote>
<p>Ich hab das jetzt genauso gemacht, wie andi01 beschrieben hat. Die DLL wird auch geladen und meine Logfile angelegt, aber es wird nicht geschrieben.</p>
</blockquote>
<p>ich nehme an das soll heißen, dass das logfile zwar existiert aber leer ist?<br />
wenn es nicht existiert, solltest du mal nachsehen ob das Programm direkt unter C:\ überhaupt schreibrechte hat und es gegebenenfalls als admin ausführen.</p>
<p>für den fall dass das logfile einfach leer ist:</p>
<p>1.Du hast im switch der logfunktion die breaks vergessen.</p>
<p>einfaches Beispiel:</p>
<pre><code class="language-cpp">int a=1;

switch(a)
{
case 1:
{
    cout&lt;&lt;&quot;1&quot;;
}
case 2:
{
    cout&lt;&lt;&quot;2&quot;;
}
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> hier wird &quot;12&quot; ausgegeben statt &quot;1&quot;</p>
<p>2. würde ich den switch mal um ein default ergänzen um zu sehen ob in deiner logfunktion überhaupt was ankommt.</p>
<p>3.könntest du dir eigentlich den switch in der DllMain sparen da du sowieso nur den Funktionsparameter ul_reason_for_call übergiebst.</p>
<p>Die DllMain ließe sich schonmal vereinfachen:</p>
<pre><code class="language-cpp">BOOL APIENTRY DllMain( HMODULE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved 
                     ) 
{ 
    logstream.open(&quot;C:\\test.log&quot;, std::ios::out | std::ios::app); 
    log(ul_reason_for_call); 
    logstream.close(); 
}
</code></pre>
<p>in der log-funktion werden ja nach wie vor nur DLL_PROCESS_ATTACH und DLL_PROCESS_DETACH geloggt.</p>
<p>4. gibt dein Code sowieso eine Zugriffsverletzung beim Schreiben:</p>
<pre><code class="language-cpp">PSYSTEMTIME time=NULL;
GetLocalTime(time);
</code></pre>
<p>nimm besser:</p>
<pre><code class="language-cpp">SYSTEMTIME time;
GetLocalTime(&amp;time);
</code></pre>
<p>dann eben noch statt</p>
<pre><code class="language-cpp">log&lt;&lt;time-&gt;wHour;
</code></pre>
<p>lieber</p>
<pre><code class="language-cpp">log&lt;&lt;time.wHour;
</code></pre>
<p>5.Um festzustellen woran es genau liegt könntest du vorläufig zB mitloggen ob die logfunktion überhaupt aufgerufen wird und wenn ja mit welchem parameter:</p>
<pre><code class="language-cpp">void log(DWORD reason)
 { 
    strimngstream sstr;
    sstr&lt;&lt;&quot;Logfunktion wurde mit parameter &quot;&lt;&lt;reason&lt;&lt;&quot;aufgerufen!\n&quot;;
    log&lt;&lt;sstr.str();
 }
</code></pre>
<p>6.Wozu das Semikolon am Ende der Funktion log()? ändert zwar nichts am ergebnis, geht aber auch ohne^^</p>
<p>lg,<br />
andi01.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957248</guid><dc:creator><![CDATA[andi01]]></dc:creator><pubDate>Sat, 25 Sep 2010 14:52:19 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sat, 25 Sep 2010 13:04:49 GMT]]></title><description><![CDATA[<p>1. Geht auch ohne, aber egal^^<br />
2. Hab ich auch gemacht, kam aber nichts (siehe Punkt 4)<br />
3. Gute Idee, mach ich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
4. Ist mir heut morgen auch aufgefallen, habs dann geändert und dann klappte alles. Deswegen kam das Programm gar nicht bis zum default.<br />
5. Kann ich mir jetzt sparen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
6. Reine Gewöhnungssache. Da ich fast ausschließlich OOP programmiere, und in Klassen das Semikolon nötig ist, habe ich mir einfach angwöhnt hinter jeder Klammer eine Funktion ein Semikolon zu setzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957306</guid><dc:creator><![CDATA[unwissenderneuling]]></dc:creator><pubDate>Sat, 25 Sep 2010 13:04:49 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sat, 25 Sep 2010 16:51:00 GMT]]></title><description><![CDATA[<p>erstmal: schön, dass es funktioniert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>aber nochmal zu Punkt 1 (mit den breaks):</p>
<p>hier mal das ziemlich stark vereinfachte Beispiel deiner logfunktion:</p>
<pre><code class="language-cpp">void log_event(DWORD reason)
{
	switch(reason)
	{
	case DLL_PROCESS_ATTACH:
		{
		cout&lt;&lt;&quot;DLL_PROCESS_ATTACH\n&quot;;
		}
        //break;
	case DLL_PROCESS_DETACH:
		{
		cout&lt;&lt;&quot;DLL_PROCESS_DETACH\n&quot;;
		}
        //break;
	}
}

int main()
{
	log_event(DLL_PROCESS_ATTACH);
}
</code></pre>
<p>bei mir wird DLL_PROCESS_ATTACH <strong>und</strong> DLL_PROCESS_DETACH ausgegeben, wenn ich die breakes einfüge <strong>nur</strong> DLL_PROCESS_ATTACH.</p>
<p>ohne breaks ist das ergebnis nur identisch wenn man DLL_PROCESS_DETACH übergiebt weil danach keine weiteren cases folgen.</p>
<p>wenn bei dir also ein DLL_PROCESS_ATTACH geloggt werden sollte müsste sowohl ein attach als auch ein detach geloggt werden...</p>
<p>unwissenderneuling schrieb:</p>
<blockquote>
<p>1. Geht auch ohne, aber egal^^</p>
</blockquote>
<p>ja, der Compiler gibt keine Fehlermeldungen aus. aber das ergebnis ist nicht gleich.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Einfach mal obiges beispiel einmal mit und einmal ohne breaks kompilieren^^</p>
<p>lg,<br />
andi01.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957339</guid><dc:creator><![CDATA[andi01]]></dc:creator><pubDate>Sat, 25 Sep 2010 16:51:00 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sat, 25 Sep 2010 17:02:08 GMT]]></title><description><![CDATA[<p>Das liegt sehr wahrscheinlich daran, dass ich die breaks schon in der DllMain hatte. Wenn die so vereinfacht, wie du es gemacht hast sind die in der Funktion log() dann natürlich nötig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957402</guid><dc:creator><![CDATA[unwissenderneuling]]></dc:creator><pubDate>Sat, 25 Sep 2010 17:02:08 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessstart anzeigen lass für Logdatei on Sun, 26 Sep 2010 09:55:26 GMT]]></title><description><![CDATA[<p>selbst wenn du sie in der main hattest sind die breaks in deiner log-funktion trotzdem nötig. hier wieder mal ein kleines beispiel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> :</p>
<pre><code class="language-cpp">void logfunc(int param)
{
	switch(param)
	{
	case 1:
		{
		cout&lt;&lt;&quot;1&quot;;
		}
         //break;
	case 2:
		{
			cout&lt;&lt;&quot;2&quot;;
		}
         //break;
	}
}

int main()
{
	int a=1;

	switch(a)
	{
	case 1:
		logfunc(1);
		break;
	case 2:
		logfunc(1);
		break;
	}

	getch();
}
</code></pre>
<p>auch hier wird &quot;12&quot; statt &quot;1&quot; ausgegeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> aber da du den switch aus main gestrichen hast brauchst du die breaks jetzt sowieso <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>lg,<br />
andi01.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1957565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1957565</guid><dc:creator><![CDATA[andi01]]></dc:creator><pubDate>Sun, 26 Sep 2010 09:55:26 GMT</pubDate></item></channel></rss>