begin process at 2012 05 29 02:09:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

C++ Name Mangling


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

C++ Name Mangling

dimanche 18 avril 2010 à 15:56:07 | C++ Name Mangling

Lutinore

Administrateur CodeS-SourceS

Salut, pour les fonctions j'arrive à éviter la décoration C++ du nom avec extern "C" mais est-ce possible de l'éviter pour les méthodes d'une classe ? merci.

par exemple :

?GetVideoWindow@MediaPlayer@@QEAAJPEAPEAUHWND__@@@Z

deviendrait :

GetVideoWindow
samedi 1 mai 2010 à 20:16:54 | Re : C++ Name Mangling

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

A mon avis c'est tout à fait mort d'essayer de ne pas avoir de décoration sur une méthode C++. Comment serait par exemple géré la surcharge (2 méthodes de même noms mais avec paramètres différents) ? Ou comment gérer le cas de deux classes exposant une méthode avec le même nom ?

Bon après, on peut toujours bidouiller. Par exemple, rien n'empêche de faire une petite retouche sur la table d'export !
On peut aussi bidouiller une fonction C exportée qui renvoie un tableau de pointeur sur les méthodes.
Bref, on peut faire beaucoup de choses très sales...

Mais avant tout, il y a quand même un gros problème : Une méthode (Non statique) prend en premier argument caché un pointeur sur l'objet... Et un objet C++, ça peut avoir une représentation en mémoire particulièrement compliqué et surtout qui dépend du compilo. Et je ne parles pas des allocations et constructeurs destructeurs...

Bref, exporter des fonctions et/ou méthodes C++, c'est mal. En général, ceux qui font des dlls en C++ ajoutent une couche C par dessus et exporte ça (Exemple : ODE).
jeudi 6 mai 2010 à 13:12:51 | Re : C++ Name Mangling

Lutinore

Administrateur CodeS-SourceS
Merci pour la réponse c'est très intéressant.. je pense simplement rajouter une interface C.


Cette discussion est classée dans : name, éviter, mangling, getvideowindow


Répondre à ce message

Sujets en rapport avec ce message

Reference pour arguments de fonction! [ par CoxJoe ] Hello,Voila mon code qui est tres simple :# include # include using namespace std;// fonction pour entrer des lettresvoid getchar(char& name[]){ cout Pb de concaténation [ par lcampeur ] J'ai un probleme de concaténation qui fait planté mon programme. Je recupere un nom de fichier avec la fonction : CString fileName ;char * Name ;fileN Cas d'école... [ par ClemB ] Bonjour, J'ai le soucis suivant dans le code ci après :typedef struct { const char *Name; ... ...} TOTO;bool AAA (TOTO *retour){ CString sTest = socket winsock grrr [ par dekai ] Voilà mon pb lorsque je tente un send ou recv j'obtient une erreur et ej comprends pas pourquoi. Merci de m'aider.Voici le code (je travaille sous dev éviter qu'une application se lance plusieurs fois [ par imanewin32 ] je réalise une application avec visual 5.0 (je suis obligé)et afin d'éviter que mon application se lance plusieurs fois, lors du lancement de l'applic Visual C++ et lecture de fichier [ par xakal ] J'ai des problemes avec les fichiers et C++.Plus exactement Visual C++, ce que je cherche a faire c?est de lire un fichier et l?afficher ligne a ligne Probleme Hostname Visual C++ [ par Steph115 ] Salut a tous voila j'ai vu que la fonction gethostbyname defini comme suit : This function gets host data corresponding to a host name.struct hostent tableau de chaines [ par ashboody ] const char * Ini_GetPrivateProfileString (...);mytype myfunc (char **RegisteredChannels_Name);{strcpy( RegisteredChannels_Name[ChannelIndex], tableaux de chaines en argument de fonction [ par ashboody ] je dispose d'une fonction connect a laquelle je doit passer un tableau de chaine char **RegisteredChannels_Name. Pour cela je déclare mon tableau dans comment éviter q'une application se lance plusieur fois [ par imanewin32 ] je réalise une application MFC de type MDI et je voudrais savoir comment faire pour éviter que mon application se lance plusieurs fois!!!!!!!!


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales