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 :

Faire communiquer PHP avec une DLL C#


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Points : 53
    Points
    53
    Par défaut Faire communiquer PHP avec une DLL C#
    Bonjour,

    Je me heurte à un problème. J'ai une API en .Net que je souhaiterais utiliser avec du PHP. Mes recherches jusqu’à maintenant se sont arrêtées sur l'object COM de PHP qui doit pouvoir lire une DLL.

    Mais ça ne fonctionne pas avec ma DLL bien sur.

    Afin de me familiariser avec le C# et l'objet COM de PHP, j'ai créer un code simple qui est le suivant :

    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace APIMT4Server
    {
        public class Server
        {
            public string hello()
            {
     
                return "Hello";
            }
        }
    }
    Cette DLL je l'ai copiée dans le dossier de mon projet Web qui utilisera la DLL en question. Dans mon code PHP j'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        public function data()
        {        
            $domainObject = new COM('APIMT4Server.Server');
            //com_print_typeinfo($domainObject);
            die;
        }
    Mais bien sûr cela ne fonctionne pas. Pouvez-vous m'expliquer pourquoi ?

    J'ai lu qu'il fallait une structure spécial dans le code de la DLL, mais je ne trouve rien de plus.

    Merci de votre aide

    Bien cordialement.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour,

    Citation Envoyé par nicko_73 Voir le message
    Mais bien sûr cela ne fonctionne pas. Pouvez-vous m'expliquer pourquoi ?
    .
    Par défaut, les objet .NET ne sont pas exposés via COM.

    Il faut rajouter une option pour cela (en revanche, je ne sais plus si c'est dans le projet ou via l'attribut COMVisible dans la classe, n'utilisant plus COM depuis des années).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

Discussions similaires

  1. Communiquer avec une DLL externe
    Par Alekhine dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 22/02/2009, 15h49
  2. Comment communiquer avec une dll, source à l'appui
    Par alpha_one_x86 dans le forum C++
    Réponses: 3
    Dernier message: 06/11/2008, 19h17
  3. Faire communiquer Delphi avec un serveur php
    Par Caesarus dans le forum Web & réseau
    Réponses: 2
    Dernier message: 30/10/2008, 11h43
  4. Comment faire communiquer CVI et une DLL?
    Par samanderson dans le forum C
    Réponses: 25
    Dernier message: 12/07/2006, 13h53
  5. Communiquer avec une DLL depuis un driver .SYS
    Par barthelv dans le forum Windows
    Réponses: 17
    Dernier message: 03/04/2006, 10h43

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