Discussion: probleme en GO

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    etudiant
    Inscrit en
    mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : mai 2017
    Messages : 3
    Points : 1
    Points
    1

    Par défaut probleme en GO

    j'ai un problème sur mon code:
    voici le code d'erreur:command-line-arguments .\service.go:42: undefined: RunAppici la linge 42 est 36
    voici le 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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    package main
     
    import (
    	"fmt"
    	"time"
     
    	"sage/sagecon/backup"
    	"sage/sagecon/core"
     
    	"golang.org/x/sys/windows/svc"
    	"golang.org/x/sys/windows/svc/eventlog"
    )
     
    const DEFAULT_SERVER_PORT = 9923
     
    type myservices struct {
    	elog           *eventlog.Log
    	backup_manager core.IBackup
    }
     
    func (m *myservices) Execute(args []string, r <-chan svc.ChangeRequest, changes chan<- svc.Status) (ssec bool, errno uint32) {
     
    	service_panic := func(err interface{}) bool {
    		if err == nil {
    			return false
    		}
    		m.elog.Error(1, core.WrapError(fmt.Errorf("FATAL ERROR: %s", err)).Error())
     
    		return true
    	}
     
    	defer func() {
    		service_panic(recover())
    	}()
     
    	app, err := RunApp(core.MakeLog(m.elog), m.backup_manager, service_panic)
    	if err != nil {
    		m.elog.Error(1, err.Error())
    		changes <- svc.Status{State: svc.StopPending}
     
    		return
    	}
     
    	const cmdsAccepted = svc.AcceptStop | svc.AcceptShutdown | svc.AcceptPauseAndContinue
     
    	changes <- svc.Status{State: svc.StartPending}
    	changes <- svc.Status{State: svc.Running, Accepts: cmdsAccepted}
     
    loop:
    	for c := range r {
    		switch c.Cmd {
    		case svc.Interrogate:
    			changes <- c.CurrentStatus
    			// Testing deadlock from https://code.google.com/p/winsvc/issues/detail?id=4
    			time.Sleep(100 * time.Millisecond)
    			changes <- c.CurrentStatus
     
    		case svc.Stop, svc.Shutdown:
    			break loop
     
    		case svc.Pause:
    			m.backup_manager.Pause()
    			app.do_pause()
     
    			changes <- svc.Status{State: svc.Paused, Accepts: cmdsAccepted}
     
    		case svc.Continue:
    			m.backup_manager.Continue()
    			app.do_continue()
     
    			changes <- svc.Status{State: svc.Running, Accepts: cmdsAccepted}
     
    		default:
    			m.elog.Error(1, fmt.Sprintf("unexpected control request #%d", c))
    		}
    	}
     
    	changes <- svc.Status{State: svc.StopPending}
     
    	m.backup_manager.Uninit()
    	app.listen_close()
    	app.do_continue()
     
    	changes <- svc.Status{State: svc.Stopped}
     
    	return
    }
     
    func RunService(name string) error {
    	elog, err := eventlog.Open(name)
    	if err != nil {
    		return core.WrapError(err)
    	}
     
    	defer elog.Close()
     
    	elog.Info(1, fmt.Sprintf("starting %s service", name))
     
    	err = svc.Run(name, &myservices{elog: elog, backup_manager: backup.MakeManager(core.MakeLog(elog))})
    	if err != nil {
    		err = core.WrapError(err)
    		elog.Error(1, fmt.Sprintf("%s service failed: %v", name, err))
     
    		return err
    	}
     
    	elog.Info(1, fmt.Sprintf("%s service stopped", name))
     
    	return nil
    }
    je n'arrive pas aresoudre le problème,quelqu'un pourait m'aider svp en me donnat comme code

  2. #2
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : septembre 2008
    Messages : 226
    Points : 327
    Points
    327

    Par défaut

    Re-bonjour Jean,

    Comme dit en MP ton problème et que ta fonction « RunApp » doit être défini quelque part.

    Soit elle l'est dans ton fichier « service.go » soit elle l'est dans un paquetage.

    Dans les paquetages que tu importes suivant :
    https://golang.org/pkg/time/
    https://golang.org/pkg/fmt/
    https://godoc.org/golang.org/x/sys/windows/svc
    https://godoc.org/golang.org/x/sys/windows/svc/eventlog

    Je n'ai pas trouvé la fonction.

    Et pour les deux autres paquetages je n'ai pas trouver la doc…

    Donc d'où vient la base de ton code ?
    Vous cherchez à apprendre les bases en langage « C », « Go », « Rust », « PHP 7 », « Java 9 » ou « Python 3 » ? N'hésitez pas à me contacter par MP.

Discussions similaires

  1. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 19h07
  2. Réponses: 2
    Dernier message: 30/05/2002, 09h54
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 20h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 15h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 11h13

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