Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

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