<?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[Code verbessern...]]></title><description><![CDATA[<p>Hab ein Code geschrieben der die Windows Version als string zurückgibt:</p>
<pre><code class="language-cpp">string OS()
	{
		string pack;

		OSVERSIONINFO version;
		version.dwOSVersionInfoSize=sizeof(version);
		if (GetVersionEx(&amp;version))
		{
			if (version.dwPlatformId == VER_PLATFORM_WIN32s)
			//cout &lt;&lt;&quot;Win32 &quot;;
			return &quot;Win32 &quot;;
			else if (version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
			{
				if(version.dwMinorVersion == 0 &amp;&amp; (strchr(version.szCSDVersion,'B')==NULL) &amp;&amp; (strchr(version.szCSDVersion,'C')==NULL))
				//cout &lt;&lt;&quot;Windows 95 &quot;;
				return &quot;Windows 95 &quot;;

				else 
				if(version.dwMinorVersion == 0&amp;&amp; (strchr(version.szCSDVersion,'B')!=NULL))
				//cout &lt;&lt;&quot;Windows 95 OSR 2 &quot;;
				return &quot;Windows 95 OSR 2 &quot;;

				else 
					if(version.dwMinorVersion == 0 &amp;&amp; (strchr(version.szCSDVersion,'C')!=NULL))
					//cout &lt;&lt;&quot;Windows 95 OSR 2.5 &quot;;
					return &quot;Windows 95 OSR 2.5 &quot;;

					else
						if(version.dwMinorVersion == 10 &amp;&amp; (strchr(version.szCSDVersion,'A')==NULL))
						//cout &lt;&lt;&quot;Windows 98 &quot;;
						return &quot;Windows 98 &quot;;

						else if (version.dwMinorVersion == 10 &amp;&amp; (strchr(version.szCSDVersion,'A')!=NULL))
						//cout &lt;&lt;&quot;Windows 98 Second Edition &quot;;  
						return &quot;Windows 98 Second Edition &quot;;
			}

			else if (version.dwPlatformId == VER_PLATFORM_WIN32_NT)
			{
				if (version.dwMinorVersion == 90)
				//cout &lt;&lt;&quot;Windows Millenium Edition &quot;;   
				//return &quot;Windows Millenium Edition &quot;;
				pack += &quot;Windows Millenium Edition &quot;;

				else if  (version.dwMajorVersion==5)
				{
					// entweder 2000 / XP / Server 2003 family
					if (version.dwMinorVersion == 0)
						//cout &lt;&lt; &quot;Windows 2000 &quot;;
						//return &quot;Windows 2000 &quot;;
						pack += &quot;Windows 2000 &quot;;

					if (version.dwMinorVersion == 1)
						//cout &lt;&lt; &quot;Windows XP &quot;;
						//return &quot;Windows XP &quot;;
						pack += &quot;Windows XP &quot;;

					if (version.dwMinorVersion == 2)
						//cout &lt;&lt; &quot;Windows Server 2003 &quot;;
						//return &quot;Windows Server 2003 &quot;;
						pack += &quot;Windows Server 2003 &quot;;
				}

				else if(version.dwMajorVersion == 6)
				{
					//cout &lt;&lt; &quot;Windows Longhorn &quot;;
					//return &quot;Windows Vista &quot;;
					pack += &quot;Windows Vista &quot;;
				}
			}

			else 
			{
				//cout &lt;&lt;&quot;Windows Version unbekannt &quot;;
				return &quot;Windows Version unbekannt &quot;;
			}  
			//	cout &lt;&lt;version.dwMajorVersion&lt;&lt;&quot;.&quot;&lt;&lt;version.dwMinorVersion&lt;&lt;&quot;.&quot;
			//		 &lt;&lt;(version.dwBuildNumber &amp; 0xffff)&lt;&lt; &quot; &quot; &lt;&lt;version.szCSDVersion&lt;&lt;endl;

		//		Convert cvt;
				pack += cvt.IntegerToString(version.dwMajorVersion);
				pack += &quot;.&quot;;
				pack += cvt.IntegerToString(version.dwMinorVersion);
				pack += &quot;.&quot;;
				pack += cvt.IntegerToString((version.dwBuildNumber &amp; 0xffff));
				pack += &quot; &quot;;
				pack += version.szCSDVersion;

				return pack;
		}
		else
		//cout &lt;&lt;&quot;Die Windows Version kann nicht herausgefunden werden.&quot;&lt;&lt;endl; 

		return &quot;Die Windows Version kann nicht herausgefunden werden. &quot;;

	}
</code></pre>
<p>Was kann man hier noch verbessern?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143744/code-verbessern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 03:00:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143744.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Apr 2006 12:11:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Code verbessern... on Tue, 11 Apr 2006 12:11:56 GMT]]></title><description><![CDATA[<p>Hab ein Code geschrieben der die Windows Version als string zurückgibt:</p>
<pre><code class="language-cpp">string OS()
	{
		string pack;

		OSVERSIONINFO version;
		version.dwOSVersionInfoSize=sizeof(version);
		if (GetVersionEx(&amp;version))
		{
			if (version.dwPlatformId == VER_PLATFORM_WIN32s)
			//cout &lt;&lt;&quot;Win32 &quot;;
			return &quot;Win32 &quot;;
			else if (version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
			{
				if(version.dwMinorVersion == 0 &amp;&amp; (strchr(version.szCSDVersion,'B')==NULL) &amp;&amp; (strchr(version.szCSDVersion,'C')==NULL))
				//cout &lt;&lt;&quot;Windows 95 &quot;;
				return &quot;Windows 95 &quot;;

				else 
				if(version.dwMinorVersion == 0&amp;&amp; (strchr(version.szCSDVersion,'B')!=NULL))
				//cout &lt;&lt;&quot;Windows 95 OSR 2 &quot;;
				return &quot;Windows 95 OSR 2 &quot;;

				else 
					if(version.dwMinorVersion == 0 &amp;&amp; (strchr(version.szCSDVersion,'C')!=NULL))
					//cout &lt;&lt;&quot;Windows 95 OSR 2.5 &quot;;
					return &quot;Windows 95 OSR 2.5 &quot;;

					else
						if(version.dwMinorVersion == 10 &amp;&amp; (strchr(version.szCSDVersion,'A')==NULL))
						//cout &lt;&lt;&quot;Windows 98 &quot;;
						return &quot;Windows 98 &quot;;

						else if (version.dwMinorVersion == 10 &amp;&amp; (strchr(version.szCSDVersion,'A')!=NULL))
						//cout &lt;&lt;&quot;Windows 98 Second Edition &quot;;  
						return &quot;Windows 98 Second Edition &quot;;
			}

			else if (version.dwPlatformId == VER_PLATFORM_WIN32_NT)
			{
				if (version.dwMinorVersion == 90)
				//cout &lt;&lt;&quot;Windows Millenium Edition &quot;;   
				//return &quot;Windows Millenium Edition &quot;;
				pack += &quot;Windows Millenium Edition &quot;;

				else if  (version.dwMajorVersion==5)
				{
					// entweder 2000 / XP / Server 2003 family
					if (version.dwMinorVersion == 0)
						//cout &lt;&lt; &quot;Windows 2000 &quot;;
						//return &quot;Windows 2000 &quot;;
						pack += &quot;Windows 2000 &quot;;

					if (version.dwMinorVersion == 1)
						//cout &lt;&lt; &quot;Windows XP &quot;;
						//return &quot;Windows XP &quot;;
						pack += &quot;Windows XP &quot;;

					if (version.dwMinorVersion == 2)
						//cout &lt;&lt; &quot;Windows Server 2003 &quot;;
						//return &quot;Windows Server 2003 &quot;;
						pack += &quot;Windows Server 2003 &quot;;
				}

				else if(version.dwMajorVersion == 6)
				{
					//cout &lt;&lt; &quot;Windows Longhorn &quot;;
					//return &quot;Windows Vista &quot;;
					pack += &quot;Windows Vista &quot;;
				}
			}

			else 
			{
				//cout &lt;&lt;&quot;Windows Version unbekannt &quot;;
				return &quot;Windows Version unbekannt &quot;;
			}  
			//	cout &lt;&lt;version.dwMajorVersion&lt;&lt;&quot;.&quot;&lt;&lt;version.dwMinorVersion&lt;&lt;&quot;.&quot;
			//		 &lt;&lt;(version.dwBuildNumber &amp; 0xffff)&lt;&lt; &quot; &quot; &lt;&lt;version.szCSDVersion&lt;&lt;endl;

		//		Convert cvt;
				pack += cvt.IntegerToString(version.dwMajorVersion);
				pack += &quot;.&quot;;
				pack += cvt.IntegerToString(version.dwMinorVersion);
				pack += &quot;.&quot;;
				pack += cvt.IntegerToString((version.dwBuildNumber &amp; 0xffff));
				pack += &quot; &quot;;
				pack += version.szCSDVersion;

				return pack;
		}
		else
		//cout &lt;&lt;&quot;Die Windows Version kann nicht herausgefunden werden.&quot;&lt;&lt;endl; 

		return &quot;Die Windows Version kann nicht herausgefunden werden. &quot;;

	}
</code></pre>
<p>Was kann man hier noch verbessern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035152</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Tue, 11 Apr 2006 12:11:56 GMT</pubDate></item><item><title><![CDATA[Reply to Code verbessern... on Tue, 11 Apr 2006 12:25:38 GMT]]></title><description><![CDATA[<p>- switches statt if verwenden. da diese afaik besser optimiert werden können.<br />
- wenn du if bleiben möchtest dann bauch mehr else if ein<br />
- variabeln erst instanzieren wenn sie benötigt werden (siehe zb: string pack;)<br />
- wenn schon c++ dann stringstreams ist auf jeden fall besser als irgendwelche convertierfunktionen</p>
<p>bsp:</p>
<pre><code class="language-cpp">std::string Win32::GetOS()
{
    std::ostringstream	sstrOS;
    OSVERSIONINFO		os;

    ZeroMemory(&amp;os, sizeof(OSVERSIONINFO));
    os.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

    if(GetVersionEx(&amp;os))
    {
		switch(os.dwPlatformId)
		{
	        case VER_PLATFORM_WIN32_NT:
					sstrOS &lt;&lt; &quot;Microsoft Windows NT&quot;;
	            break;
                       // usw usw 
	        default:
				return std::string(&quot;Unkown Microsoft Windows Platform&quot;);
	    }

		sstrOS &lt;&lt; &quot; &quot; &lt;&lt; os.dwMajorVersion;
		sstrOS &lt;&lt; &quot;.&quot; &lt;&lt; os.dwMinorVersion;
		sstrOS &lt;&lt; &quot; Build: &quot; &lt;&lt;  (os.dwBuildNumber &amp; 0xFFFF);
    }
	else
		return std::string(&quot;Unkown Microsoft Windows Platform&quot;);

	return sstrOS.str();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1035172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035172</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Tue, 11 Apr 2006 12:25:38 GMT</pubDate></item></channel></rss>