Forum Programmation.perl Appelle à module 'use' dans un thread

Posté par  .
Étiquettes : aucune
0
23
sept.
2006
Bonjour,

Je finalise une application qui utilise des threads. Je la porte actuellement sous Windows pour qu'elle puisse travailler en OLE avec MS Outlook;

Cependant, probleme, je suis bloqué par un soucis : tout mes actions vers outlook s'execute dans un de mes threads, et le module ne semble pas marcher correctement quand appelé ainsi.

Exemple :


use threads;
use threads::shared;

sub test {
use Win32::OLE::Const 'Microsoft Outlook';
print Win32::OLE->GetActiveObject('Outlook.Application');
}
test();


my $thr1 = threads->create(sub {
use Win32::OLE::Const 'Microsoft Outlook';
print Win32::OLE->GetActiveObject('Outlook.Application');
});

La fonction test() me retourne un resultat alors que le threads qui appel les meme fonction reste muet. Quelqu'un aurait une piste?

merci beaucoup
swobz
  • # oops

    Posté par  . Évalué à 1.

    je précise que meme avec

    use Win32::OLE::Const 'Microsoft Outlook';

    correctement placé au début, ca ne résoud pas le probleme.
  • # Sans vouloir être blessant

    Posté par  . Évalué à -1.

    Tu es sur Linuxfr, pas MSfr ou encore MSDN.

    Donc tu as des chances d'avoir au mieux rien (perso, je ne suis pas un guru windows et je ne peux pas t'aider dans la mesure ou j'ai pas cet OS chez moi)
    Au pire, tu auras "Tu es sur un forum sur Linux qui tend à parler des logiciels libres en général donc laisses tomber avec ton VB"

    Bonne chance quand même mais tu auras plus de chance d'avoir des réponses pertinantes en allans sur http://www.developpez.com/

    Je te conceil même http://vb.developpez.com/
    • [^] # Re: Sans vouloir être blessant

      Posté par  . Évalué à 3.

      Le langage ici c'est du perl, et si ca se trouve son soft est libre, meme si il tourne sous Windows...
      • [^] # Re: Sans vouloir être blessant

        Posté par  . Évalué à 1.

        "Le langage ici c'est du perl"
        &
        "my $thr1"

        OK, j'avais pas vu

        "si ca se trouve son soft est libre, meme si il tourne sous Windows..."

        Qu'il soit libre peut-être, mais ca n'empêche qu'il y a sûrement beaucoup de forums spécialisés dans le dev sous Windows et qu'il aura plus de chance de succès en y allant... par ce que jusqu'à preuve du contraire, c'est dur de tester son code sous autre chose que Win non?
        • [^] # Re: Sans vouloir être blessant

          Posté par  . Évalué à 1.

          Effectivement je me suis rendu compte que c'était pas le forum le plus approprié, j'ai foncé vers linuxfr comme par reflexe.

          Cela étant dit, j'ai décidé j'ai laissé tombé et je recommence tout mon appli, cette fois ci en python qt. J'espere que le portage sous d'autres OS se fera plus facilement.
          • [^] # Re: Sans vouloir être blessant

            Posté par  . Évalué à 2.

            Faut faire un join() apres avoir lancé ton thread (cf. perldoc perlthrtut)

            Autre chose: les 'use' plusieurs fois ne servent a rien, et le mettre plus loin dans ton programme non plus, de toutes facons perl va lire le module et importer pendant le BEGIN{} et ne le fait qu'une fois. (perldoc -f use)

            Ps: Si ya moyen de s'en sortir sans threads (comme dans 99% des cas sous unix en tout cas), autant le faire.
  • # oops

    Posté par  . Évalué à 1.

    je précise que meme avec

    use Win32::OLE::Const 'Microsoft Outlook';

    correctement placé au début, ca ne résoud pas le probleme.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.