IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Mise en place d'un tube sous QtCreator : no matching function for call to 'MainWindow::close(int&)'


Sujet :

C++

  1. #1
    Membre �clair�
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2014
    Messages
    375
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 375
    Par d�faut Mise en place d'un tube sous QtCreator : no matching function for call to 'MainWindow::close(int&)'
    Bonsoir � tous,

    Ayant r�alis� mon tube par les E/S standard, je cherche � l'implanter dans mon programme .cpp sous QtCreator.

    Il s'av�re que j'ai un probl�me de ce type :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    mainwindow.cpp: erreur : no matching function for call to 'MainWindow::close(int&)'
             close(fds[0]);
                         ^
    Voici mon code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
     
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <unistd.h>
     
    #include <stdio.h>
     
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <unistd.h>
     
    #include <fcntl.h>
    #include <sys/stat.h>
     
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <cstdlib>
    #include <stdlib.h>
     
    #include <qwt_plot_curve.h>
    #include <QColorDialog>
     
    using namespace std;
     
    //CONSTRUCTEUR
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    }
     
    //DESTRUCTEUR
    MainWindow::~MainWindow()
    {
        delete ui;
    }
     
    //ACQUISITION DES DONNEES
    void MainWindow::on_pushButton_clicked()
    {
     
     
        char integration_time_char[15];
        int integration_time=10000000;
        sprintf (integration_time_char,"%d",integration_time); //conversion de l'int en décimal pour le char
     
        /* create the pipe */
        int  fds[2];
        if (pipe(fds) == -1)
          {
            printf("pipe failed\n");
            //return 1;
          }
     
        /* create the child */
        int  pid;
        if ((pid = fork()) < 0)
          {
            printf("fork failed\n");
            //return 2;
          }
     
        if (pid == 0)
          {
            /* child */
            //char buffer[20];
     
            close(fds[0]);
            dup2(fds[1], STDOUT_FILENO);
            execl("/Test/Acquisition","Acquisition",integration_time_char,NULL);
            close(fds[1]);
     
     
          }
        else
          {
            /* parent */
            waitpid(pid,NULL,0);
            char buffer[1000];
     
            close(fds[1]);
            dup2(fds[0], STDIN_FILENO);
     
            while (read(fds[0], buffer, 1000) != 0)
              printf("%s\n", buffer);
     
            close(fds[0]);
     
              //printf("%s", buffer);       printf("%s", buffer);       printf("%s", buffer);
           //std::cout << buffer << std::endl;
     
          }
    }
    Je ne vois pas comment faire pour que QtCreator se serve des fonctions close et autres qui sont plut�t syst�me. Le probl�me c'est que je suis dans la classe MainWindows purement orient� Objet.

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 507
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 507
    Par d�faut
    MainWindows purement orient� Objet
    Ca n'existe pas en C++, le purement orient� objet, le C++ est multi-paradigme, tout le temps.
    Alors faites le comme si vous �tiez dans une fonction libre.
    Si des fonctions libres sont "cach�e" par les m�thodes de la classe, utilisez le pr�fixe "::" devant le nom de ces fonctions libres.

Discussions similaires

  1. Mise en place d'une CVth�que sous Excel
    Par thomas.c37 dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 10/09/2015, 21h11
  2. [XL-2010] Mise en place d'un facturier sous Excel
    Par Maidhy dans le forum Excel
    R�ponses: 4
    Dernier message: 01/11/2014, 19h05
  3. [D�butant] Mise en place d'une application sous r�seau
    Par eemii dans le forum C#
    R�ponses: 2
    Dernier message: 13/11/2013, 08h43
  4. Mise en place d'un reseau sous linux
    Par doumbix dans le forum Administration
    R�ponses: 4
    Dernier message: 17/06/2013, 12h56
  5. Mise en place d'un plugin sous Firefox et Safari
    Par Tony36 dans le forum D�buter
    R�ponses: 1
    Dernier message: 07/12/2011, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo