Seite 1 von 1
Python in C++ Windows Forms
Verfasst: Samstag 12. November 2011, 17:40
von Christi258
Servus Leute,
Ich möchte in einem C/C++ Windows Forms- Projekt einen Python Skript ausführen. Dabei habe ich aber noch eine Menge Probleme:
Könntet ihr mir sagen wie ich "Das Programm gegen die Python API linke"?
Ist dieser Python-Skript in C richtig?:
Code: Alles auswählen
const char *Schreiber =
"fobj = open("sauf.sav", "a")\n"
"fobj.write("\n" + str(GetraenkH) + "a" + str(GetraenkC) + "b" + str(GetraenkA) + "c" + str(GetraenkP))\n"
"fobj.close()\n";
Schonmal danke für eure Antworten
Re: Python in C++ Windows Forms
Verfasst: Samstag 12. November 2011, 19:36
von BlackJack
@Christi258: Wenn man sich das mit Syntaxhighlighting anschaut ist das offenbar kein gültiges C oder C++.
Ansonsten könntest Du Dir das `obj` bei `fobj` sparen, denn in Python ist *alles* was man an einen Namen binden kann ein Objekt. Das noch einmal im Namen zu erwähnen hat also keinen Mehrwert für den Leser.
Und die `str()`-Aufrufe sind untypisch. Man würde eher Zeichenkettenformatierung mittels ``%``-Operator oder `format()`-Methode auf Zeichenketten machen.
Wenn das ausgeführt wird, müssen natürlich die `Getraenk*`-Namen an Objekte gebunden sein. Hier ist die Namensgebung untypisch es sei denn das sind tatsächlich Klassen.
Re: Python in C++ Windows Forms
Verfasst: Sonntag 13. November 2011, 16:41
von Christi258
@BlackJack Danke für deine schnelle Antwort, aber mal abgesehen wie ich meine Variablen benenne und der Rest was dir nicht so gefällt( str();fobj), könntest du meine relevanten Fragen beantworten?
Christi258 hat geschrieben:
Könntet ihr mir sagen wie ich "Das Programm gegen die Python API linke"?
Zur Erläuterung: Ich habe das Python 3 Buch bei Galileo Computing gekauft und dort ist ein Beispiel für ein Code:
Code: Alles auswählen
#include <Python.h>
const char *programm =
"import random\n"
"print('Guten Tag, die Zahl ist:', random.randint(0, 100))\n"
"print('Das war ... Python')\n";
int main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString(programm);
Py_Finalize();
}
Dieses Consolen-Programm funktioniert bei mir nicht deshalb die Frage.
Hoffe du verstehst mich jetzt.
Re: Python in C++ Windows Forms
Verfasst: Sonntag 13. November 2011, 17:12
von BlackJack
@Christi258: Was heisst „funktioniert nicht“ denn konkret?
Re: Python in C++ Windows Forms
Verfasst: Sonntag 13. November 2011, 18:14
von Christi258
Sorry hab ich vergessen,
Es kommt die folgende Fehlermeldung:
fatal error LNK1104: Datei "python30_d.lib" kann nicht geöffnet werden.
Re: Python in C++ Windows Forms
Verfasst: Sonntag 13. November 2011, 19:32
von BlackJack
@Christi258: Hast Du die Bibliothek denn installiert? Das ist AFAIK die Bibliothek die man braucht wenn man einen Debug-Buiild macht. Du könntest alternativ also auch versuchen einen Release-Build zu machen.
Re: Python in C++ Windows Forms
Verfasst: Montag 14. November 2011, 14:31
von Christi258
Ich weiß nicht ob ich dir genau folgen konnte.
Wie Installiert man denn eine Bibliothek?
Und wenn ich ein Release-Build machen würde (hab ich) dann müsste es auch diese AFAIK Bibliothek gehen?
Re: Python in C++ Windows Forms
Verfasst: Montag 14. November 2011, 14:51
von deets

Bist du wirklich, dass du einer solchen Aufgabe gewachsen bist? Du scheinst noch nicht mal die grundlegensten Begriffe der Entwicklung unter C++ zu beherrschen.
AFAIK ist keine Bibliothek - sondern ein Acronym, das fuer 'As far as I know' steht, und damit sagt BlackJack nur, dass er vermutet, dass die Python-Bibliothek die du versuchst zu linken die Debug-Variante von Python ist - weil dein Projekt im Debug-Modus gebaut wird. Also musst du entweder eine Debug-Variante von Python installieren, oder eben dein Projekt im Release-Modus bauen (was bei deinen Kuensten das ganze noch ein bisschen schwieriger macht... denn dann kannst du kein C++ debuggen)
Das ist aber alles absolute Grundlagen VisualStudio/C++ Entwicklung.
Re: Python in C++ Windows Forms
Verfasst: Montag 14. November 2011, 15:45
von Christi258
Wo gibt es diese Debug-Variante?
Re: Python in C++ Windows Forms
Verfasst: Montag 14. November 2011, 17:33
von BlackJack
@Christi258: Dafür müsstest Du wahrscheinlich Python selbst kompilieren. Im Debug-Modus.
Re: Python in C++ Windows Forms
Verfasst: Dienstag 15. November 2011, 15:25
von Christi258
Es mag ja sein, dass ihr Recht habt, aber in diesem Buch steht nunmal überhaupt nichts von diesen Dingen, und ich glaube nicht, dass die mich dort verarschen wollen.
Hier ist die Vorgängerversion meines Buches mit Version 2.5:
http://openbook.galileocomputing.de/pyt ... 33564f01e5
Der Text ist aber gleich.
Re: Python in C++ Windows Forms
Verfasst: Dienstag 15. November 2011, 15:34
von deets
Diese Beschreibung ist doch nicht vollstaendig. Du hast doch noch jede Menge Dinge machen muessen, die darin nicht beschrieben werden - und die du uns hier selbstredend verschweigst.
Mit welchem Compiler machst du das, benutzt du Visual Studio oder den mingw, hast du ein Projekt angelegt in VS, oder ein Makefile geschrieben? Usw. usf.
Ich vermute mal, dass du VS benutzt, und irgendwie ein Beispiel-Projekt gebaut hast. Und das ist jetzt halt im Debug-Modus kompiliert.
Und noch ein Nachtrag: doch, das Galileo-Buch kann man durchaus grenzwertig als Verarschung bezeichnen.
Re: Python in C++ Windows Forms
Verfasst: Dienstag 15. November 2011, 15:45
von Christi258
Ich benutzte Visual Studio 2008, Ich habe keine Ahnung von Makefiles(weiß nur dass es sowas gibt), aber mein Projekt ist völlig selbst entwickelt.
Danke für deine Hilfe
Re: Python in C++ Windows Forms
Verfasst: Dienstag 15. November 2011, 16:33
von deets
Also, dann hast du doch build-settings irgendeiner Weise. Ich kenne VS nicht, aber da kannst du jetzt bestimmen, ob es ein Release oder Debug build ist. Google halt doch mal ein bisschen, das ist doch nicht so schwer...
Re: Python in C++ Windows Forms
Verfasst: Donnerstag 19. Juli 2012, 15:24
von Nuby
deets hat geschrieben:
Bist du wirklich, dass du einer solchen Aufgabe gewachsen bist? Du scheinst noch nicht mal die grundlegensten Begriffe der Entwicklung unter C++ zu beherrschen.
Naja...ich würde es mal nicht so eng sehen. Schließlich versucht man ja weiterzukommen und das geht nicht durch Nichtstun.

Re: Python in C++ Windows Forms
Verfasst: Donnerstag 19. Juli 2012, 15:57
von deets
Sach mal, bist du nekrophil, oder warum graebst du hier all die alten, laengst gestorbenen Threads aus? Das ist zwar nicht per se verboten, aber da du ausser Gemeinplaetzen ja nicht wirklich was dazu beitraegst doch eher irritierend.
Re: Python in C++ Windows Forms
Verfasst: Freitag 20. Juli 2012, 18:44
von Leonidas
Wo ist der Like-Button? Ohwait....