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

Code::Blocks Discussion :

Cr�er un projet DLL en C pas en C++


Sujet :

Code::Blocks

  1. #1
    R�dacteur
    Avatar de Franck.H
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par d�faut Cr�er un projet DLL en C pas en C++


    Je suis devant un petit probl�me, je veut cr�er un projet DLL mais C::B me cr�� un projet C++ et non C, d'ailleurs il me propose m�me pas le choix du langage

    Comment puis-je faire ?

    Mon Site
    Ma biblioth�que de gestion des cha�nes de caract�res en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne r�pond � aucune question technique par MP, merci d'avance !

  2. #2
    R�dacteur
    Avatar de Franck.H
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par d�faut
    Bon j'ai temporairement r�solu le probl�me en changeant le compilateur dans les options du toolchain et j'ai mis celui pour le C mingw32-gcc.exe

    Je laisse le sujet ouvert � toutes meilleures propositions
    Mon Site
    Ma biblioth�que de gestion des cha�nes de caract�res en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne r�pond � aucune question technique par MP, merci d'avance !

  3. #3
    Membre Expert

    Avatar de germinolegrand
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Octobre 2010
    Messages
    738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Par d�faut
    Bonjour Franck.H,

    Je vais supposer soit que tu disposes de la derni�re version de c::b, soit qu'il agit de fa�on identique pour les deux derni�res version.

    Ton probl�me est facilement solvable : le fichier g�n�r� est main.cpp, il suffit de le changer en main.c afin que la compilation se fasse en C.

    C'est en effet un probl�me qui m'a jou� quelques tours .

    La diff�rence entre un projet C et un projet C++ r�side uniquement dans l'extension des fichiers.

    Je n'ai pas encore trouv� malgr� mes recherches comment se configurait la mise en relation entre l'extension et la ligne de compilation associ�e. J'ai bien peur que ce ne soit built-in, chose que je trouve dommage car cela permettrait plus facilement l'utilisation d'autres langages...

    J'ai trouv� .

    Tout d'abord si vous voulez faire compiler en C un fichier.cpp, clic droit -> Properties -> Advanced, changez la Compiler variable de CPP � CC. (� noter qu'une commande de build custom est possible, mais ce serait refaire un travail inutilement ).

    Ensuite, on peut ajouter des lignes de commandes de compilation/link/g�n�ration des d�pendances/etc. dans Settings -> Compiler -> Global Compiler Settings -> Other Settings -> Advanced Options. /!\ Ne touchez pas ceci � la l�g�re /!\.

    Ces quelques d�couvertes vont encore m'aider � appr�cier C::B surtout lorsqu'il s'agit de g�rer des cas r�calcitrants, par exemple cmake pour ne citer que lui (et plus globalement, puisque j'ai commenc� � m'essayer au d�veloppement web avec C::B...).

    En esp�rant que cela solutionne plus proprement ton probl�me que de virer le compilo c++ comme un malpropre .

  4. #4
    R�dacteur
    Avatar de Franck.H
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par d�faut
    Citation Envoy� par germinolegrand Voir le message
    Je vais supposer soit que tu disposes de la derni�re version de c::b, soit qu'il agit de fa�on identique pour les deux derni�res version.
    Tu suppose bien

    Citation Envoy� par germinolegrand Voir le message
    Ton probl�me est facilement solvable : le fichier g�n�r� est main.cpp, il suffit de le changer en main.c afin que la compilation se fasse en C.
    M�me pas, c'est la premi�re chose que j'ai faite apr�s le premier essai de compilation. Le compilateur s'arr�tait tout le temps sur cette ligne (normal, elle est l� pour �a ) J'avais d'ailleurs m�me �dit� le script pour qu'il me g�n�re directement un fichier C
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    #ifdef __cplusplus
    #error This source file is not C++ but rather C. Please use a C-compiler
    #endif
    Ta solution ci-dessous fonctionne � merveille par contre

    Citation Envoy� par germinolegrand Voir le message
    Tout d'abord si vous voulez faire compiler en C un fichier.cpp, clic droit -> Properties -> Advanced, changez la Compiler variable de CPP � CC. (� noter qu'une commande de build custom est possible, mais ce serait refaire un travail inutilement ).
    Ca marche au poil Par contre faut le faire pour tous les fichiers alors, heureusement que j'en ai que deux dans ma DLL

    Citation Envoy� par germinolegrand Voir le message
    Ces quelques d�couvertes vont encore m'aider � appr�cier C::B surtout lorsqu'il s'agit de g�rer des cas r�calcitrants, par exemple cmake pour ne citer que lui (et plus globalement, puisque j'ai commenc� � m'essayer au d�veloppement web avec C::B...).
    Pareil, je n'utilise que celui-ci depuis quelques ann�es maintenant et jamais vraiment �t� d��u. Des fois leur InteliSense laisse encore � d�sirer mais ils y arriveront un jour

    Citation Envoy� par germinolegrand Voir le message
    En esp�rant que cela solutionne plus proprement ton probl�me que de virer le compilo c++ comme un malpropre .
    Je l'utilise pas ce foutu compilo C++


    Mon Site
    Ma biblioth�que de gestion des cha�nes de caract�res en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne r�pond � aucune question technique par MP, merci d'avance !

  5. #5
    Membre Expert

    Avatar de germinolegrand
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Octobre 2010
    Messages
    738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Par d�faut
    Ah, � noter, je ne sais pas si tu l'as essay�, j'ai oubli� de le pr�ciser : en m�me temps de changer le .cpp en .c il faut supprimer le fichier du projet, le renommer, le rajouter (ceci afin de permettre � c::b de faire l'�tape o� il choisis le type de compilo).

    Corriger le script n'est pas une mauvaise id�e ^^

    Edit : +1 pour le parser un peu � la ramasse parfois ^^ (pour le C++11 c'est pas le pied par exemple ^^' m�me si on note des efforts notables), je crois que ce plugin est en cours de r��criture compl�te...

  6. #6
    R�dacteur
    Avatar de Franck.H
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par d�faut
    Citation Envoy� par germinolegrand Voir le message
    Ah, � noter, je ne sais pas si tu l'as essay�, j'ai oubli� de le pr�ciser : en m�me temps de changer le .cpp en .c il faut supprimer le fichier du projet, le renommer, le rajouter (ceci afin de permettre � c::b de faire l'�tape o� il choisis le type de compilo).
    Non effectivement, je n'ai pas essay� �a, je verrais la prochaine fois, maintenant elle est produite ma DLL

    Citation Envoy� par germinolegrand Voir le message
    Corriger le script n'est pas une mauvaise id�e ^^
    Mais �a ne solutionnais pas le probl�me pour autant

    Citation Envoy� par germinolegrand Voir le message
    Edit : +1 pour le parser un peu � la ramasse parfois ^^ (pour le C++11 c'est pas le pied par exemple ^^' m�me si on note des efforts notables), je crois que ce plugin est en cours de r��criture compl�te...
    Ca ne serait pas une mauvaise chose en effet
    Mon Site
    Ma biblioth�que de gestion des cha�nes de caract�res en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne r�pond � aucune question technique par MP, merci d'avance !

  7. #7
    R�dacteur
    Avatar de Franck.H
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par d�faut
    Au passage, une autre chose un peu naze, c'est le Build Target dans les propri�t�s du projet, on te proposes Windows, Linux, Mac mais il ne prend tout de m�me en compte que Windows, le compilateur pourrait �tre cr�� de fa�on a ce qu'on puisse produire du code natif pour d'autres syst�me car :
    "C_Str_dll - Release" does not support the current platform. Skipping...
    Je ne vois pas l'int�r�t de le proposer
    Mon Site
    Ma biblioth�que de gestion des cha�nes de caract�res en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne r�pond � aucune question technique par MP, merci d'avance !

  8. #8
    Membre Expert

    Avatar de germinolegrand
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Octobre 2010
    Messages
    738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Par d�faut
    Citation Envoy� par Franck.H Voir le message
    Au passage, une autre chose un peu naze, c'est le Build Target dans les propri�t�s du projet, on te proposes Windows, Linux, Mac mais il ne prend tout de m�me en compte que Windows, le compilateur pourrait �tre cr�� de fa�on a ce qu'on puisse produire du code natif pour d'autres syst�me car :

    Je ne vois pas l'int�r�t de le proposer
    Disons que c'est utile dans certains cas. Je m'en sers pour faire un .cbp qui couvre les b�tises de cmake ^^ �a permet par exemple de faire une virtual target unique "All" qui contient aussi bien les targets destin�s � linux qu'� windows ainsi lorsqu'on ex�cute All seuls les targets destin�es � la plateforme actuelle sont ex�cut�s.

  9. #9
    R�dacteur
    Avatar de Franck.H
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par d�faut
    Vu comme �a oui pourquoi pas
    Mon Site
    Ma biblioth�que de gestion des cha�nes de caract�res en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne r�pond � aucune question technique par MP, merci d'avance !

  10. #10
    Membre Expert

    Avatar de germinolegrand
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Octobre 2010
    Messages
    738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Par d�faut
    La seule chose que je reproche aux virtual targets c'est de ne pas permettre d'inclure d'autres virtual targets .

    Sinc�rement j'en d�couvre tous les jours un peu plus sur c::b ^^ cet �t� il faut vraiment que je me mette � �tudier comment cr�er des plugins, �a pourrait �tre outrageusement pratique .

  11. #11
    R�dacteur
    Avatar de Franck.H
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par d�faut
    Citation Envoy� par germinolegrand Voir le message
    La seule chose que je reproche aux virtual targets c'est de ne pas permettre d'inclure d'autres virtual targets .
    Oui effectivement, surtout que dans le choix des projets tu peux m�me trouver des projets ARM etc... alors que pour le build target bin �a n'y est m�me pas

    Citation Envoy� par germinolegrand Voir le message
    Sinc�rement j'en d�couvre tous les jours un peu plus sur c::b ^^ cet �t� il faut vraiment que je me mette � �tudier comment cr�er des plugins, �a pourrait �tre outrageusement pratique .
    Ouais c'�tait aussi quelque chose que j'avais d�j� en t�te il y a quelques temps mais sans trouver le temps

    Rien que la doc de ma lib fr/en � presque compl�tement remettre � jour �a va me prendre une plombe, sans compter le temps que je vais passer pour r�ussir � faire un svn --relocate pour mettre � jour mon d�p�t SubVersion sur SourceForge car ils ont pas trouv� mieux que de d�m�nager les serveurs de d�p�t, hier j'y est pass� 1h sans r�ussir
    Mon Site
    Ma biblioth�que de gestion des cha�nes de caract�res en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne r�pond � aucune question technique par MP, merci d'avance !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. cr�er un projet avec des .dll
    Par valgoku dans le forum Visual Studio
    R�ponses: 3
    Dernier message: 18/11/2010, 21h43
  2. Projet qui marchait, DLL qui compile pas
    Par strayyy dans le forum Visual C++
    R�ponses: 2
    Dernier message: 04/06/2009, 22h15
  3. Cr�er un projet VB6 (et pas VB.net)
    Par sigfrit dans le forum Visual Studio
    R�ponses: 1
    Dernier message: 15/03/2009, 23h52
  4. Cr�er un projet avec TurboC++
    Par Thrystan dans le forum Autres �diteurs
    R�ponses: 16
    Dernier message: 06/09/2003, 17h32
  5. [Kylix] Projet avec fenetre marche pas
    Par Therich dans le forum EDI
    R�ponses: 1
    Dernier message: 11/07/2003, 12h34

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