C++ Modul

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Hi.
Versuche mich gerade an einem kleinem C++ Modul für Python 2.5.
Allerdings schlage ich schon daran fehl, die Python.h zu includen. Sobald das passiert, kommen weit mehr als 100 Fehler aus der windows.h / winnt.h.

Hier mal ein Pastebin Link: http://nopaste.org/p/asFqkYVJG (wird aber wohl nichts bringen).

Ich habe keine weiteren Informationen dazu gefunden. Muss man noch etwas bestimmtes definieren?

~ Chris
Grüßle.
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Mach dir das Leben einfacher und nimm Boost::python.

(Auf deine Frage bezogen vermute ich, dass du Python.h als extern "C" includieren müsstest; aber nimm boost::python, das erspart dir viel viel arbeit. Eine Lernkurve ist aber auch dort vorhanden)
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Funktioniert Boost::python auch mit Linux?
Eigentlich wollte ich da keine Umwege machen, sondern lieber direkt arbeiten ;)

~ Chris
Grüßle.
Benutzeravatar
sebastinas
User
Beiträge: 7
Registriert: Mittwoch 7. Januar 2009, 20:29

Chrisber hat geschrieben:Funktioniert Boost::python auch mit Linux?
Ja. Mit der Dokumentation zu Boost.Python sollte man auch halbwegs weit kommen. Ein paar fortgeschrittene Sachen sind zwar sehr tricky, aber es ist auf jeden Fall angenehmer damit zu Arbeiten als mit der Python C-API.
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Hi.
Habe das nochmal mit extern "C" probiert, aber auch das bringt nichts.
Das kann doch nicht sein dass ich der einzige bin, der damit Probleme hat. Habe bei Google nichts derartiges gefunden, immer nur im Zusammenhang mit dem DirectX8 SDK und das benutze ich gar nicht...

~ Chris
Grüßle.
Benutzeravatar
sebastinas
User
Beiträge: 7
Registriert: Mittwoch 7. Januar 2009, 20:29

Schon mal versucht die include-Reihenfolge zu vertauschen? Aber das ist auch nur so dahin geraten ... ohne Code wird das schwierig.
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Hi.
Habe jetzt mal die Reihenfolge 10 mal verändert, hat nichts gebracht.
Habe mal das gesamte Projekt inkl. aller Abhängigkeiten hochgeladen (MSVC++08EE), vielleicht hast du ja mal Lust reinzuschauen ;)
Die windows.h wird in der SigScan.hpp im Ordner Dateien includet, der ganze Python krams befindet sich in Dateien/PythonHook.cpp.

*Links entfernt*

EDIT: Ich habs!!! Es lag daran, dass ich den Python Ordner als Includepfad gesetzt habe. Habe jetzt anstatt

Code: Alles auswählen

<Python.h>
ein

Code: Alles auswählen

"../Python/Python.h"
und es geht!!! Danke an alle trotzdem :)

~ Chris
Grüßle.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Bessere Lösung: dem Compiler mit -I den richtigen Pfad zu den Includedateien gleich mitgeben. Schließlich hat nicht jeder seine ``Python.h`` in ``../Python/Python.h``.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Ähm..
Es lag daran, dass ich den Python Ordner als Includepfad gesetzt habe.
Habe ich doch gemacht ;)

~ Chris
Grüßle.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wie hast du den Python-Ordner in den Include-Pfad gesetzt?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Aber anscheinend nicht richtig, also nicht auf den gleichen Pfad, den ein "../Python/Python.h" ergibt. Denn dann würde es keinen Unterschied zwischen den beiden Varianten geben, ausser dass `-I` mit dem richtigen Pfad und <Python.h> in der Datei, der sauberere Weg ist.
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Doch.
Wenn ich den Includepfad setze und <Python.h> benutze, kommen diese ganzen Fehler aus der windows.h - was soll ich bitte sonst machen außer den Pfad direkt einzugeben damit es funktioniert?!

~ Chris
Grüßle.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ja und wie setzt du das? Wie sieht denn der Compiler-Aufruf aus?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Weiß ich nicht.
Ich habe den Pfad ganz normal in den Projekteinstellungen von MSVC++08EE gesetzt und compiled, was den Fehler verursachte.

~ Chris
Grüßle.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Was heißst "ganz normal"? Welchen Pfad *genau*? Was steht in der Logdatei beim aufruf von ``cl``?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten