<?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[Verwendung von GPIO Ports unter Windows 11]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin relativ neu in der C++ Welt (komme von Java).<br />
Ich versuche nun seit 3 Tagen die GPIO's zu verwenden und scheitere kläglich. Vielleicht könnt ihr mir helfen.</p>
<p>Der Hersteller des PC's hat mir ein Beispiel-Programm zur verfügung gestellt wo ich aber immer über die Meldung stolpere:<br />
&quot;Failed to initialize WinIo.&quot;</p>
<p>Hir einmal der Quellcode:</p>
<pre><code class="language-cpp">// DEMO.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

// demo.cpp : Diese Datei enthält die Hauptfunktion. Hier wird die Programmausführung gestartet und beendet.
//


#include &lt;iostream&gt;
#include &lt;tchar.h&gt;
#include &lt;Windows.h&gt;

typedef bool(_stdcall* INITIALIZEWINIO)(void);
typedef void(_stdcall* SHUTDOWNWINIO)(void);
typedef bool(_stdcall* GETPORTVAL)(WORD, PDWORD, BYTE);
typedef bool(_stdcall* SETPORTVAL)(WORD, DWORD, BYTE);
SHUTDOWNWINIO ShutdownWinIo;
GETPORTVAL GetPortVal;
SETPORTVAL SetPortVal;
INITIALIZEWINIO InitializeWinIo;

VOID SafeGetNativeSystemInfo(__out LPSYSTEM_INFO lpSystemInfo)
{
	if (NULL == lpSystemInfo)    return;
	typedef VOID(WINAPI* LPFN_GetNativeSystemInfo)(LPSYSTEM_INFO lpSystemInfo);
	LPFN_GetNativeSystemInfo fnGetNativeSystemInfo =
		(LPFN_GetNativeSystemInfo)GetProcAddress(GetModuleHandle(_T(&quot;kernel32&quot;)), &quot;GetNativeSystemInfo&quot;);
	if (NULL != fnGetNativeSystemInfo)
	{
		fnGetNativeSystemInfo(lpSystemInfo);
	}
	else
	{
		GetSystemInfo(lpSystemInfo);
	}
}

int GetSystemBits()
{
	SYSTEM_INFO si;
	SafeGetNativeSystemInfo(&amp;si);
	if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||
		si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64)
	{
		return 64;
	}
	return 32;
}

#define GETPROC(n, d) 						\
    n = (d) GetProcAddress(lib, #n); 				\
    if (!n) {					\
      fprintf(stderr, &quot;Failed to load &quot; #n &quot; function.\n&quot;);	\
      return 1; 						\
    }

//==========================================================WatchDogTimer=========================================================//
#define SIO_CONFIG_INDEX 0x2E
#define SIO_CONFIG_DATA 0x2F
void WatchDogTimer(WORD TimerValue) // 1 &lt; TimerValue &lt; 65535 , Unit = Second
{
	// Enter Configuration Mode.
	SetPortVal(SIO_CONFIG_INDEX, 0x87, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x01, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x55, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x55, 1);

	//=====================LDN 07====================================//
	SetPortVal(SIO_CONFIG_INDEX, 0x07, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x07, 1);

	//=====================WDT====================================//   
	SetPortVal(SIO_CONFIG_INDEX, 0x72, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x90, 1);	//Enable WDT

	SetPortVal(SIO_CONFIG_INDEX, 0x74, 1);
	SetPortVal(SIO_CONFIG_DATA, (BYTE)((TimerValue &amp; 0xFF00) &gt;&gt; 8), 1);	//MSB

	SetPortVal(SIO_CONFIG_INDEX, 0x73, 1);
	SetPortVal(SIO_CONFIG_DATA, (BYTE)(TimerValue &amp; 0x00FF), 1);	//LSB
}

void DisableWdt()
{
	// Enter Configuration Mode.
	SetPortVal(SIO_CONFIG_INDEX, 0x87, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x01, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x55, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x55, 1);

	//=====================LDN 07====================================//
	SetPortVal(SIO_CONFIG_INDEX, 0x07, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x07, 1);

	//=====================WDT====================================//   
	SetPortVal(SIO_CONFIG_INDEX, 0x72, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x00, 1);	//Disable WDT

	SetPortVal(SIO_CONFIG_INDEX, 0x74, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x00, 1);	//MSB

	SetPortVal(SIO_CONFIG_INDEX, 0x73, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x00, 1);	//LSB
}

//================================================================================================================================//
//GPIO0 Input------------------0xA06.bit0
int IsGpio0Set()
{
	DWORD PortValue;
	GetPortVal(0xA06, &amp;PortValue, 1);
	if (PortValue &amp; 0x01)
		return 1;
	else
		return 0;
}

//GPIO1 Input------------------0xA06.bit1
int IsGpio1Set()
{
	DWORD PortValue;
	GetPortVal(0xA06, &amp;PortValue, 1);
	if (PortValue &amp; 0x02)
		return 1;
	else
		return 0;
}

//GPIO1 Output------------------0xA06.bit1
void Gpio1Set(int outputvalue)
{
	DWORD PortValue;
	GetPortVal(0xA06, &amp;PortValue, 1);
	if (outputvalue == 0)
		SetPortVal(0xA06, (PortValue &amp; 0xFD | 0x00), 1);
	else
		SetPortVal(0xA06, (PortValue &amp; 0xFD | 0x02), 1);
}

int main() {

	HMODULE lib = NULL;
	DWORD PortValue;

	std::cout &lt;&lt; &quot;Hier läuft ein: &quot; &lt;&lt; GetSystemBits() &lt;&lt; &quot;-Bit System&quot; &lt;&lt; std::endl;
	// 32-Bit System
	if (GetSystemBits() == 32) {
		lib = LoadLibrary(TEXT(&quot;WinIo32.dll&quot;));
	}
	// 64-Bit System
	else if (GetSystemBits() == 64) {
		//lib = LoadLibrary(_T(&quot;C:\\\\Users\\\\LokalAdmin\\\\Downloads\\\\H6 GPIO\\\\Windows\\\\WinIo64.dll&quot;));
		lib = LoadLibraryA(&quot;C:\\\\Users\\\\LokalAdmin\\\\Downloads\\\\H6 GPIO\\\\Windows\\\\WinIo64.dll&quot;);
	}

	GETPROC(InitializeWinIo, INITIALIZEWINIO);
	GETPROC(ShutdownWinIo, SHUTDOWNWINIO);
	GETPROC(GetPortVal, GETPORTVAL);
	GETPROC(SetPortVal, SETPORTVAL);

	if (!InitializeWinIo()) {
		std::cout &lt;&lt; &quot;Failed to initialize WinIo.\n&quot;;
		return 0;
	}
	else {

		std::cout &lt;&lt; &quot;Initialize WinIo OK.\n&quot;;

		//WatchDogTimer(50); // Füttern Sie den Hund 50 Sekunden lang

		if (IsGpio1Set())
		{

			//GPIO1 Eingang = TRUE
		}
		else
		{

			//GPIO1 EINGANG = FALSE
		}

		Gpio1Set(1);// GPIO1 Ausgabe TRUE
		Gpio1Set(0);// GPIO1 AUSGABE FALSE
	}
	// Wenn das Programm beendet wird, führen Sie diese Funktion aus
	ShutdownWinIo();
}
</code></pre>
<p>Ich habe die restlichen GPIO'S mal rausgelöscht da es immer das selbe ist und so der Code um einiges kürzer wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/355327/verwendung-von-gpio-ports-unter-windows-11</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 08:59:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/355327.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Jun 2025 07:04:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verwendung von GPIO Ports unter Windows 11 on Thu, 26 Jun 2025 07:04:31 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin relativ neu in der C++ Welt (komme von Java).<br />
Ich versuche nun seit 3 Tagen die GPIO's zu verwenden und scheitere kläglich. Vielleicht könnt ihr mir helfen.</p>
<p>Der Hersteller des PC's hat mir ein Beispiel-Programm zur verfügung gestellt wo ich aber immer über die Meldung stolpere:<br />
&quot;Failed to initialize WinIo.&quot;</p>
<p>Hir einmal der Quellcode:</p>
<pre><code class="language-cpp">// DEMO.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

// demo.cpp : Diese Datei enthält die Hauptfunktion. Hier wird die Programmausführung gestartet und beendet.
//


#include &lt;iostream&gt;
#include &lt;tchar.h&gt;
#include &lt;Windows.h&gt;

typedef bool(_stdcall* INITIALIZEWINIO)(void);
typedef void(_stdcall* SHUTDOWNWINIO)(void);
typedef bool(_stdcall* GETPORTVAL)(WORD, PDWORD, BYTE);
typedef bool(_stdcall* SETPORTVAL)(WORD, DWORD, BYTE);
SHUTDOWNWINIO ShutdownWinIo;
GETPORTVAL GetPortVal;
SETPORTVAL SetPortVal;
INITIALIZEWINIO InitializeWinIo;

VOID SafeGetNativeSystemInfo(__out LPSYSTEM_INFO lpSystemInfo)
{
	if (NULL == lpSystemInfo)    return;
	typedef VOID(WINAPI* LPFN_GetNativeSystemInfo)(LPSYSTEM_INFO lpSystemInfo);
	LPFN_GetNativeSystemInfo fnGetNativeSystemInfo =
		(LPFN_GetNativeSystemInfo)GetProcAddress(GetModuleHandle(_T(&quot;kernel32&quot;)), &quot;GetNativeSystemInfo&quot;);
	if (NULL != fnGetNativeSystemInfo)
	{
		fnGetNativeSystemInfo(lpSystemInfo);
	}
	else
	{
		GetSystemInfo(lpSystemInfo);
	}
}

int GetSystemBits()
{
	SYSTEM_INFO si;
	SafeGetNativeSystemInfo(&amp;si);
	if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||
		si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64)
	{
		return 64;
	}
	return 32;
}

#define GETPROC(n, d) 						\
    n = (d) GetProcAddress(lib, #n); 				\
    if (!n) {					\
      fprintf(stderr, &quot;Failed to load &quot; #n &quot; function.\n&quot;);	\
      return 1; 						\
    }

//==========================================================WatchDogTimer=========================================================//
#define SIO_CONFIG_INDEX 0x2E
#define SIO_CONFIG_DATA 0x2F
void WatchDogTimer(WORD TimerValue) // 1 &lt; TimerValue &lt; 65535 , Unit = Second
{
	// Enter Configuration Mode.
	SetPortVal(SIO_CONFIG_INDEX, 0x87, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x01, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x55, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x55, 1);

	//=====================LDN 07====================================//
	SetPortVal(SIO_CONFIG_INDEX, 0x07, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x07, 1);

	//=====================WDT====================================//   
	SetPortVal(SIO_CONFIG_INDEX, 0x72, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x90, 1);	//Enable WDT

	SetPortVal(SIO_CONFIG_INDEX, 0x74, 1);
	SetPortVal(SIO_CONFIG_DATA, (BYTE)((TimerValue &amp; 0xFF00) &gt;&gt; 8), 1);	//MSB

	SetPortVal(SIO_CONFIG_INDEX, 0x73, 1);
	SetPortVal(SIO_CONFIG_DATA, (BYTE)(TimerValue &amp; 0x00FF), 1);	//LSB
}

void DisableWdt()
{
	// Enter Configuration Mode.
	SetPortVal(SIO_CONFIG_INDEX, 0x87, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x01, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x55, 1);
	SetPortVal(SIO_CONFIG_INDEX, 0x55, 1);

	//=====================LDN 07====================================//
	SetPortVal(SIO_CONFIG_INDEX, 0x07, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x07, 1);

	//=====================WDT====================================//   
	SetPortVal(SIO_CONFIG_INDEX, 0x72, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x00, 1);	//Disable WDT

	SetPortVal(SIO_CONFIG_INDEX, 0x74, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x00, 1);	//MSB

	SetPortVal(SIO_CONFIG_INDEX, 0x73, 1);
	SetPortVal(SIO_CONFIG_DATA, 0x00, 1);	//LSB
}

//================================================================================================================================//
//GPIO0 Input------------------0xA06.bit0
int IsGpio0Set()
{
	DWORD PortValue;
	GetPortVal(0xA06, &amp;PortValue, 1);
	if (PortValue &amp; 0x01)
		return 1;
	else
		return 0;
}

//GPIO1 Input------------------0xA06.bit1
int IsGpio1Set()
{
	DWORD PortValue;
	GetPortVal(0xA06, &amp;PortValue, 1);
	if (PortValue &amp; 0x02)
		return 1;
	else
		return 0;
}

//GPIO1 Output------------------0xA06.bit1
void Gpio1Set(int outputvalue)
{
	DWORD PortValue;
	GetPortVal(0xA06, &amp;PortValue, 1);
	if (outputvalue == 0)
		SetPortVal(0xA06, (PortValue &amp; 0xFD | 0x00), 1);
	else
		SetPortVal(0xA06, (PortValue &amp; 0xFD | 0x02), 1);
}

int main() {

	HMODULE lib = NULL;
	DWORD PortValue;

	std::cout &lt;&lt; &quot;Hier läuft ein: &quot; &lt;&lt; GetSystemBits() &lt;&lt; &quot;-Bit System&quot; &lt;&lt; std::endl;
	// 32-Bit System
	if (GetSystemBits() == 32) {
		lib = LoadLibrary(TEXT(&quot;WinIo32.dll&quot;));
	}
	// 64-Bit System
	else if (GetSystemBits() == 64) {
		//lib = LoadLibrary(_T(&quot;C:\\\\Users\\\\LokalAdmin\\\\Downloads\\\\H6 GPIO\\\\Windows\\\\WinIo64.dll&quot;));
		lib = LoadLibraryA(&quot;C:\\\\Users\\\\LokalAdmin\\\\Downloads\\\\H6 GPIO\\\\Windows\\\\WinIo64.dll&quot;);
	}

	GETPROC(InitializeWinIo, INITIALIZEWINIO);
	GETPROC(ShutdownWinIo, SHUTDOWNWINIO);
	GETPROC(GetPortVal, GETPORTVAL);
	GETPROC(SetPortVal, SETPORTVAL);

	if (!InitializeWinIo()) {
		std::cout &lt;&lt; &quot;Failed to initialize WinIo.\n&quot;;
		return 0;
	}
	else {

		std::cout &lt;&lt; &quot;Initialize WinIo OK.\n&quot;;

		//WatchDogTimer(50); // Füttern Sie den Hund 50 Sekunden lang

		if (IsGpio1Set())
		{

			//GPIO1 Eingang = TRUE
		}
		else
		{

			//GPIO1 EINGANG = FALSE
		}

		Gpio1Set(1);// GPIO1 Ausgabe TRUE
		Gpio1Set(0);// GPIO1 AUSGABE FALSE
	}
	// Wenn das Programm beendet wird, führen Sie diese Funktion aus
	ShutdownWinIo();
}
</code></pre>
<p>Ich habe die restlichen GPIO'S mal rausgelöscht da es immer das selbe ist und so der Code um einiges kürzer wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2623997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2623997</guid><dc:creator><![CDATA[Knausbär]]></dc:creator><pubDate>Thu, 26 Jun 2025 07:04:31 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von GPIO Ports unter Windows 11 on Thu, 26 Jun 2025 07:47:30 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/38989">@Knausbär</a> sagte in <a href="/forum/post/2623997">Verwendung von GPIO Ports unter Windows 11</a>:</p>
<blockquote>
<p>Failed to initialize WinIo.</p>
</blockquote>
<p>Hast du die Anwendung auch als Administrator gestartet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2623998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2623998</guid><dc:creator><![CDATA[Quiche Lorraine]]></dc:creator><pubDate>Thu, 26 Jun 2025 07:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von GPIO Ports unter Windows 11 on Thu, 26 Jun 2025 08:19:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ja ich habe VisualStudio als Administrator gestartet und ebenfalls unter Windows folgenden Befehl ausgeführt (und neu gestartet): bcdedit.exe /set testsigning on</p>
<p>Alles ohne Erfolg...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2623999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2623999</guid><dc:creator><![CDATA[Knausbär]]></dc:creator><pubDate>Thu, 26 Jun 2025 08:19:07 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von GPIO Ports unter Windows 11 on Thu, 26 Jun 2025 11:51:25 GMT]]></title><description><![CDATA[<p>Wenn du die genaue interne Funktion herausfinden möchtest, warum <code>InitializeWinIo()</code> fehlschlägt, könntest du dir die Sourcen unter <a href="https://github.com/starofrainnight/winio" rel="nofollow">WinIO</a> dazu ziehen und selber ein Testprogramm aufsetzen, das direkt diese Sourcen einbindet und <code>InitializeWinIo()</code> aufruft (und dann mittels Breakpoint in der Funktion step-by-step den Code durchdebuggen).</p>
<p>Laut Source von <a href="https://github.com/starofrainnight/winio/blob/b095609124b4db3b5a52be4113f78c2a6a12ae1b/Source/Dll/WinIo.cpp#L95" rel="nofollow">InitializeWinIo()</a> gibt es mehrere Codestellen, an denen <code>false</code> zurückgegeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2624007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2624007</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Thu, 26 Jun 2025 11:51:25 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von GPIO Ports unter Windows 11 on Thu, 26 Jun 2025 13:27:09 GMT]]></title><description><![CDATA[<p>Wie gesagt ich bin relativ frisch in C++.<br />
Mit den Brakpoints bekomme ich hin aber ich kann nichts mit WinIO und InitializeWinIo() anfangen.</p>
<p>Wäre über jede Hilfe dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2624008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2624008</guid><dc:creator><![CDATA[Knausbär]]></dc:creator><pubDate>Thu, 26 Jun 2025 13:27:09 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von GPIO Ports unter Windows 11 on Thu, 26 Jun 2025 15:24:55 GMT]]></title><description><![CDATA[<p>Du verstehst schon, daß die Fehlermeldung durch den Aufruf von <code>InitializeWinIo()</code> in deinem gezeigten Code in den Zeilen 160 - 162 kommt, oder?</p>
<p>Und diese Funktion (wenn du auf diesen Link <a href="https://github.com/starofrainnight/winio/blob/b095609124b4db3b5a52be4113f78c2a6a12ae1b/Source/Dll/WinIo.cpp#L95" rel="nofollow">InitializeWinIo()</a> klickst, um die Sourcen davon zu sehen) ruft intern 4 weitere Funktionen auf, die eben fehlschlagen können und alle geben dann <code>false</code> zurück (leider weiß man daher nur bei Auswertung des Rückgabewertes eben nicht, was genau die korrekte Initialisierung verhindert).</p>
<p>Ziehe dir daher den Source Code unter <a href="https://github.com/starofrainnight/winio/releases/tag/3.0" rel="nofollow">WinIo 3.0</a>. Die <a href="https://github.com/starofrainnight/winio/tree/master/Samples" rel="nofollow">Samples</a> sind leider für C#/.NET und helfen dabei nicht weiter.</p>
<p>Erstelle daher im Visual Studio eine neue Solution (auf deutsch: Projektmappe) und füge dann das Projekt <a href="https://github.com/starofrainnight/winio/blob/master/Source/Dll/WinIo.vcproj" rel="nofollow">WinIo.vcproj</a> hinzu (also das bei dir dann lokal abgelegte Projekt aus dem WinIO Source Code).<br />
Nun fügst du ein weiteres C++ Konsolenprojekt zu dieser Projektmappe hinzu mit folgendem Code:</p>
<pre><code class="language-cpp">#include &quot;../WinIO/Source/Dll/winio.h&quot; // &lt;- hier mußt du evtl. den Pfad auf die Headerdatei noch anpassen!

int main()
{
	if (!InitializeWinIo()) {
		std::cout &lt;&lt; &quot;Failed to initialize WinIo.\n&quot;;
		return -1;
	}
	else {
		std::cout &lt;&lt; &quot;Initialize WinIo OK.\n&quot;;
	}

	return 0;
}
</code></pre>
<p>Als letztes muß noch die lokale WinIO-Lib in den Linkeroptionen angegeben werden (evtl. recherchieren bzw. nachfragen).</p>
<p>Dann die gesamte Projektmappe bauen (kompilieren). Achte darauf, daß als Konfiguration &quot;Debug&quot; in der oberen ComboBox ausgewählt ist!<br />
Nun setzt du 2 Breakpunkte in dem Konsolenprojekt beim Aufruf von <code>InitializeWinIo()</code> als auch im WinIO-Projekt in der Datei &quot;Source/Dll/WinIo.cpp&quot; in der Funktion <code>InitializeWinIo()</code> selbst.<br />
Wenn du dann das Programm im VS startest, dann sollte es beim ersten Breakpoint halten und du kannst dann mit der Taste F11 in die Funktion springen und dann mit F10 jeweils die einzelnen Codezeilen durchgehen, solange bis einer der internen Funktionen fehlschlägt und eines der <code>return false</code>-Zeilen ausgeführt wird. Nun weißt du welche der 4 Funktionen dadrin fehlgeschlägt.</p>
<p>PS: Was dein gezeigter Code etwas komplizierter macht, ist, daß je nach Rechnerarchitektur entweder die WinIO-DLL für 32 oder 64bit dynamisch geladen wird.<br />
Was wird denn für dich bei dem Testprogramm ausgegeben: <code>&quot;Hier läuft ein: &quot; ??? &quot;-Bit System&quot;</code>.<br />
Ich nehme mal an, du hast ein 64bit Windows und es wird <code>64</code> ausgegeben!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2624009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2624009</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Thu, 26 Jun 2025 15:24:55 GMT</pubDate></item><item><title><![CDATA[Reply to Verwendung von GPIO Ports unter Windows 11 on Fri, 27 Jun 2025 09:45:31 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ja es ist ein 64-Bit System.</p>
<p>Ich verstehe halt nicht was so schwer bei Windows ist auf GPIO's zuzugreifen. Mit einem Raspberry wäre ich schon fertig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2624014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2624014</guid><dc:creator><![CDATA[Knausbär]]></dc:creator><pubDate>Fri, 27 Jun 2025 09:45:31 GMT</pubDate></item></channel></rss>