wxGlade // C und C++ definieren // open62541



  • Hallo liebes Forum,

    ich arbeite gerade an einer Server-Client Verbindung für eine Automatisierungsprojekt.

    Um es kurz zu machen:

    Durch Vorgaben bin ich gezwungen das Programm in C zu schreiben http://open62541.org/
    Das hat auch alles wunderbar funktioniert.

    Nun soll ich für meinen Client eine HMI in wxGlade erstellen.
    Dabei steht mir die Speicherung der Oberfläche im C++ oder XRC-Dateiformat zur Verfügung.

    Erste Frage was ist eine XRC-Datei? (Bringt es mir irgendwelche Vorteile damit zu arbeiten?)

    Ich besitze eine open62541.h Datei und eine Client.c Datei.

    Ist es nun möglich die Funktionen aus meiner Client.c - Datei (Sind natürlich mit Funktionen aus der open62541.h Datei verschlungen) in die von wxGlade erstellte Vorlage zu implementieren?

    Die Beispiele mit:

    #ifdef __cplusplus
    extern "C" {
    #endif
    

    .. usw

    Funktioniert aber bisher nur an einem kleinen selbgeschriebenen Testprogramm.

    Bin ich damit auf der richtigen Spur?

    Grüße SBifi



  • Ja, man kann C und C++ zusammen in einem Programm benutzen. Dabei ist der Aufruf von C-Funktionen aus C++ einfach und wird, wie von dir beschrieben, mit extern "C" ermöglicht.

    XRC Dateien kommen im C++-Standard nicht vor. Ebenso kennt er kein wxGlade.



  • Hallo, danke für die Antwort

    Ich glaube ich habe einen etwas größeres Problem.

    Ich benutze GCC um meinen Code umzuwandeln.

    Im Fall des Clients:

    gcc -std=c99 client.c open62541.c -o BClient
    

    Verstehe ich diesen Befehl richtig?
    Das ich in der Variante C99 einen BClient erstelle und dabei meinen client.c mit dem Code von open62541.c "verlinke" und umwandle?

    🙂 grüße



  • SBifi schrieb:

    Ich glaube ich habe einen etwas größeres Problem.

    Dass glaube ich auch!

    SBifi schrieb:

    Ich benutze GCC um meinen Code umzuwandeln.

    Compiler übersetzen.

    SBifi schrieb:

    Im Fall des Clients:

    gcc -std=c99 client.c open62541.c -o BClient
    

    Der C-Compiler übersetzt die beiden Dateien nach dem C99-Standard und der Linnker bindet das Ergebnis zu der ausführbaren Datei BClient zusammen (falls es keine Fehler gibt).

    Du weißt nicht wirklich, was du da tust, oder?


Log in to reply