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 :

utilis� string dans une dll c++


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par d�faut utilis� string dans une dll c++
    Bonjour � tous
    j'ai un probl�me avec la cr�ation d'une dll avec c++
    pour cr�er les fonctions � export� de dll si son type de retour est int ou void les types de c en g�n�ral �a marche voir comme exemple
    Code c++:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    extern "C" int WINAPI getdatabase()
    {
    	res=c.GetDatabase(0,cdb);
    	 return(res);
     
    }
    mais si je veut utiliser un string comme type de retour pour le fonction j'ai se message d'erreur lors de la compilation

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    warning C4190: 'getdatabase' a une liaison C spécifiée, mais retourne 'std::basic_string<_Elem,_Traits,_Ax>' UDT qui est incompatible avec C
            with
            [
                _Elem=char,
                _Traits=std::char_traits<char>,
                _Ax=std::allocator<char>
            ]
    Merci pour vos aides

  2. #2
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par d�faut
    voir le code avec string
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    extern "C" std::string WINAPI getdatabase()
    {
    	std::string ch="kld";
    	//res=c.GetDatabase(0,cdb);
    	 return(ch);
     
    }

  3. #3
    Membre �clair� Avatar de thoratou
    Profil pro
    Inscrit en
    D�cembre 2008
    Messages
    57
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 57
    Par d�faut
    change le extern "C" par extern

    std::string n'existe pas en C

  4. #4
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par d�faut
    si j'ai la modifier mais une erreur lors de l'utilisation de dll avec java jna
    j'ai la test� avec le type de retour int avec java dll marche mais pour string il m'affiche
    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
    A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x10004768, pid=2436, tid=3500
    #
    # JRE version: 6.0_18-b07
    # Java VM: Java HotSpot(TM) Client VM (16.0-b13 mixed mode, sharing windows-x86 )
    # Problematic frame:
    # C  [jna8751411624704296542.dll+0x4768]
    #
    # An error report file with more information is saved as:
    # D:\salah\Project\Testjna\hs_err_pid2436.log
    #
    # If you would like to submit a bug report, please visit:
    #   http://java.sun.com/webapps/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Pour l'interop�rabilit�, j'ai tendance � pr�coniser les BSTR (bien que VB fasse des b�tises avec si l'on n'est pas dans un objet COM) ou bien comme Windows, les tableaux de caract�res pass�s en param�tre.

    Est-ce que JNA accepte les BSTR?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Codeguard dans une DLL utilis� par du code manag�
    Par Volfoni dans le forum C++Builder
    R�ponses: 0
    Dernier message: 06/11/2008, 17h06
  2. passer une string dans une DLL C++ (pas VC++)
    Par me_myself dans le forum Visual C++
    R�ponses: 3
    Dernier message: 01/10/2007, 11h09
  3. R�ponses: 4
    Dernier message: 11/04/2007, 12h49
  4. R�ponses: 7
    Dernier message: 25/11/2005, 17h11

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