Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] [PB 11.5.1] Comment puis-je appeler une fonction d'une dll C#?

#1 07-11-2014 17:36:39

Amélie  
Membre Geek
Date d'inscription: 24-11-2009
Messages: 24
Pépites: 135
Banque: 0

[RESOLU] [PB 11.5.1] Comment puis-je appeler une fonction d'une dll C#?

Bonjour,

Je suis actuellement en PB 11.5.1 Desktop.

J'ai créé une dll en C# avec Visual Studio 2013 qui contient une classe qui contient elle même une fonction

Code: C#

namespace ClassLibrary1
{
    public class Class1
    {
        public string Essai(string message)
        {
            return message + " : bien reçu";
        }
    }
}

Je voudrais appeler la fonction Essai mais je ne sais pas comment faire?

J'ai essayer d'ajouter cette fonction dans mes Global External Fonction

Code: pb

public function string Essai(string as_message) LIBRARY "ClassLibrary1.dll" alias for "EssaiA;Ansi"

Puis de l'appeler dans une fonction PB

Code: pb

retour = Essai(message_origine)

Mais j'obtiens le message

"Error calling external function EssaiA;Ansi at line 28 in function f_lance_envoi_stat of object f_lance_envoi_stat."

Pouvez-vous m'aider?

Merci d'avance

Dernière modification par Amélie (23-10-2015 09:41:38)

Hors ligne

 

#2 10-11-2014 16:25:56

_francois_  
Bienfaiteur du site
Lieu: TOULOUSE
Date d'inscription: 25-03-2010
Messages: 151
Pépites: 178,983,268,111
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] [PB 11.5.1] Comment puis-je appeler une fonction d'une dll C#?

Sans vouloir dire de bêtise pour rendre une dll .net visible par PB il faut la rendre COM Visible et l'enregistrer par un regasm

Code: c#

using System.Runtime.InteropServices;

namespace TonInterop
{
    [ComVisible(true)]
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ProgId("TonInterop.Toto")]
    public class TaClasse
    {


Et dans PB tu l'utilises par un OLE object

Code: pb

oleobject loo_dll
loo_dll = CREATE oleobject

li_ret = loo_vbh.connectToNewObject("TonInterop.Toto")


En espérant que ça puisse t'aider un peu.

Dernière modification par _francois_ (10-11-2014 16:26:33)

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] [PB 11.5.1] Comment puis-je appeler une fonction d'une dll C#?

Pied de page des forums

Propulsé par FluxBB 1.2.22