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

ASP.NET Discussion :

Ma DLL retourne une chaine de caractère vide.


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut Ma DLL retourne une chaine de caractère vide.
    Bonjour. J'ai écrit un DLL très simple en C++ dont voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "stdafx.h"
    #include <string>
    extern "C++" __declspec(dllexport)  std::string get();
    std::string get()
    {
    	return "Allo";
    }
    Le but de cette DLL est de simplement retourner le mot "Allo".
    Maintenant, je veux utiliser cette DLL avec VB Net 2005. Je veux simplement afficher dans un messagebox la réponse de la DLL. Voici le code VB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Imports System.Runtime.InteropServices
    Public Class Form1
        <DllImport("C:\testdll.dll", EntryPoint:="?get@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ")> _
        Public Shared Function test() As System.Text.StringBuilder
        End Function
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim reponse As New System.Text.StringBuilder(20)
            MessageBox.Show(reponse.ToString.Trim)
        End Sub
    End Class
    Mon problème est que la réponse reçu est une chaine de caractère vide plutôt que le mot "Allo". Pouvez-vous me dire pourquoi?

    Merci de prendre votre temps pour m'aider.

    Alain

  2. #2
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    Ta function te retourne une chaine vide par ce que tu ne fais a aucun endroit appel a ta methode test.

    Sinon une question en retour, comment as-tu su comment nommer ton
    entry point dans ta dllimport?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut
    Merci zeavan. Tu as tellement raison et c'est tellement basique. Sauf que même en corrigeant cela, j'avais toujours un problème de violation d'accès mémoire. J'ai trouvé la solution ici: http://www.xtremevbtalk.com/showthread.php?t=257601
    Le problème était dans la portion en C++

    Pour ta question, j'ai utilisé "dumpbin.exe /exports "C:\testdll.dll"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/12/2014, 15h16
  2. Insérer une chaine de caractères vide dans un vecteur
    Par ebenmous dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 28/06/2011, 21h55
  3. Réponses: 2
    Dernier message: 07/11/2007, 08h44
  4. Retourner une chaine de caractére
    Par insa59 dans le forum C
    Réponses: 22
    Dernier message: 23/03/2007, 17h29
  5. Réponses: 23
    Dernier message: 13/11/2006, 03h33

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