IO-Warrior SDK unter Eclipse CDT 3.2 u. WinXP einbinden

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
crazypenguin

IO-Warrior SDK unter Eclipse CDT 3.2 u. WinXP einbinden

Post by crazypenguin »

Hallo zusammen,

nachdem ich mir die letzte Nacht damit um die Ohren geschlagen habe, ein einfaches C-Programm zu entwickeln, das mir die Anzahl der angeschlossenen IO-Warriors anzeigen soll, wende ich mich vertrauensvoll an euch :D

Wie im Thread-Titel erwähnt, versuche ich mich an der Programmierung des IO-Warriors unter Windows XP mit der Eclipse Umgebung mit aktuellem CDT-Plugin und dem Mingw-Compiler, hier ist der GCC 3.4 integriert. Soweit so gut, das entwickeln von einfachen C-Programmen funktioniert soweit, nur wenn ich das IO-Warrior SDK dem GCC Compiler und Linker bekannt machen will, scheitert jeder Compile-Versuch an angeblichen Syntax-Fehlern in der Iowkit.h. Ich habe gemäß Anleitung die iowkit.dll nach Windows\System32 kopiert, und habe dem Compiler den Pfad zur iowkit.h bekannt gemacht, sowie die Linker-Libraries (höchstwahrscheinlich) korrekt um die iowkit-Library ergänzt. Der Compiler und der Linker scheinen die entsprechenden includes auch zu finden, allerdings werden keine binaries erzeugt :(

Hat hier jemand im Forum Erfahrungen mit der IOW-Programmierung unter Eclipse CDT und kann mir weiter helfen?

Danke und Gruß
Kai
Henning
Posts: 11
Joined: Mon Apr 18, 2005 9:42 pm

Post by Henning »

Hallo Kai,
das liegt daran, dass die iowkit.h Datentypen benutzt, die im Visual Studio bekannt sein. Beim MinGW-Compiler ist das standardmäßig nicht der Fall. Du musst in Deinem Programm ganz am Anfang ein #include "windef.h" ergänzen. Dann sollte es gehen. Bei mir tut es das jedenfalls. Ich habe die folgende kurze Beispiel-Anwendung in Eclipse 3.2 mit CDT-Plugin zum Laufen bekommen.

Code: Select all

#include "windef.h"
#include "iowkit.h"
#include <iostream>
using namespace std;

int main()
{
	IOWKIT_HANDLE p_ioHandle;
	p_ioHandle = IowKitOpenDevice();
	
	if ( p_ioHandle != NULL )
	{
		cout << "IO-Warrior geöffnet" << endl;
		IowKitCloseDevice(p_ioHandle);
	}
	else
	{
		cerr << "Kein IO-Warrior gefunden!" << endl;
	}
	
	return 0;
}
Sag mal Bescheid, ob es geklappt hat.
crazypenguin

Post by crazypenguin »

Hat funktioniert, besten Dank! :D
Post Reply