Utilisation de fonctions de classe à partir d'une DLL C++ dans une application C
telephonerouge
Messages postés4Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention21 février 2009
-
19 févr. 2009 à 17:01
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
21 févr. 2009 à 19:43
bonjour,
Alors en tout désepoir je vous écris espérant que vous pourriez m'aider.
Alors mon problème est:
J'ai une application en C#.net qui ne contient que l'interface graphique, supposant que j'ai un bouton quand je clique dessus il fait appel à une méthode qui se trouve dans une classe qui elle me même se trouve dans une DLL écrite en C++.
je programme sous VS2005 et la DLL est un projet DLL MFC que j'ai écrite moi même.
le hic c'est que quand j'appelle une méthode qui ne fait partie d'une hiérarchie (d'une classe) tout se passe bien sinon pour appeler une méthode qui fait partie d'une classe ça ne marche pas il ne trouve pas la méthode dans la DLL.
C'est un peu tiré par les cheveux tout ça j'espère que vous m'avez compris.
Sinon si vous avez des exemple plus explicite à me donner ça serais super...
j'ai eu beau chercher sur tout les forums qui existent je ne trouve pas mon bonheur...
En vous remerciant d'avance.
A voir également:
Utilisation de fonctions de classe à partir d'une DLL C++ dans une application C
telephonerouge
Messages postés4Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention21 février 2009 20 févr. 2009 à 13:03
Rebonjour ...
ça ne marche pas ...
je te mets un code tout bidon et si tu peux dire ça serais super ça peut te paraitre un peu bête mas ça m'aiderait vachement
mon code C++ dans ma DLL:
forme.cpp
#include "StdAfx.h"
#include "Forme.h"
__declspec(dllexport) Forme::Forme(void)
{
}
__declspec(dllexport) char* __stdcall Forme::carre2(){
return "je suis un carre de la classe Forme";
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace formeApplication
{
public partial class Form1 : Form
{
[DllImport("formeDLL.dll", EntryPoint = "carre2")]
public static extern String carre2();
public Form1()
{
InitializeComponent();
}
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 21 févr. 2009 à 19:43
oui pas bon du tout.. dans mon exemple, j'exporte les fonctions Create et Destroy, j'utilise la convention d'appel ThisCall, j'utilise le nom décoré de la fonction etc..