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?


Anmelden zum Antworten