probleme de compilation

probleme de compilation - C#/.NET managed - Programmation

Marsh Posté le 27-06-2007 à 13:34:09    

salut,
je developpe une application en bibliotheque de classes et quan je veux l executé ça ne fonctionne pas. L erreur est la suivent : "Un projet avec un type de sortie de bibliotheque de classes ne peut pas etre demarré directement. Pour deboguer ce projet, ajoutez à cette solution un projet executable qui fait reference au projet de bibliotheque."
Je veux bien faire reference a la bibliotheque de classes mais comment faire? Quelle nouveau projet creer et comment ensuite faire reference?
Je suis sur .NET 2005 et je developpe avec C#.
Merci a tous.

Reply

Marsh Posté le 27-06-2007 à 13:34:09   

Reply

Marsh Posté le 27-06-2007 à 14:02:55    

euh ...
 
une bibliothèque de classes n'est pas une application éxécutable directement, il s'agit d'une DLL.
 
Pour utiliser ta bibliotheque de classe, tu dois cree une application windows/console et ajouter la référence a ta DLL dans ton projet d'application console/windows

Reply

Marsh Posté le 27-06-2007 à 14:03:47    

je t aime a écrit :

salut,
je developpe une application en bibliotheque de classes et quan je veux l executé ça ne fonctionne pas. L erreur est la suivent : "Un projet avec un type de sortie de bibliotheque de classes ne peut pas etre demarré directement. Pour deboguer ce projet, ajoutez à cette solution un projet executable qui fait reference au projet de bibliotheque."
Je veux bien faire reference a la bibliotheque de classes mais comment faire? Quelle nouveau projet creer et comment ensuite faire reference?
Je suis sur .NET 2005 et je developpe avec C#.
Merci a tous.


Lis de la doc avant de coder, ca t'aidera ...


---------------
Töp of the plöp
Reply

Marsh Posté le 27-06-2007 à 14:05:40    

_darkalt3_ a écrit :

Lis de la doc avant de coder, ca t'aidera ...


J'avais pas osé  :lol:

Reply

Marsh Posté le 27-06-2007 à 14:20:22    

Koyomi a écrit :

J'avais pas osé  :lol:


Faut pas hésiter, c'est normalement la marche à suivre pour apprendre quelque chose ...


---------------
Töp of the plöp
Reply

Marsh Posté le 27-06-2007 à 15:40:10    

J ai bien essayé de trouver par moi meme mais je comprenais pas les explications! Merci à vous.
J ai bien créé un nouveau projet donc "WindowsApplication". Ensuite si j ai bien compris j ai fai "ajouter une reference" sur le nouveau projet. Donc la j execute la "WindowsApplication" et ça devrait m executer ma bibliotheque de classe?

Reply

Marsh Posté le 27-06-2007 à 15:41:12    

il faut que ta windowsapplication instancie (pas executer, on execute pas une bibliothèque) un objet de ta dll, et oui, l'appel se fera par ce biais.


---------------
Töp of the plöp
Reply

Marsh Posté le 27-06-2007 à 15:46:30    

merci pour tes precisions c est sympa!
le seul probleme c est que je veux bien instancier un objet de ma dll!
mais a quoi correspond un objet de ma dll?

Reply

Marsh Posté le 27-06-2007 à 15:51:06    

je t aime a écrit :

merci pour tes precisions c est sympa!
le seul probleme c est que je veux bien instancier un objet de ma dll!
mais a quoi correspond un objet de ma dll?


Tu rigoles ?


---------------
Töp of the plöp
Reply

Marsh Posté le 27-06-2007 à 15:54:23    

un objet de mon projet principal je veux bien! mais la dll c est du langage un peu "machine"! C est l ensemble de mon projet principal!

Reply

Marsh Posté le 27-06-2007 à 15:54:23   

Reply

Marsh Posté le 27-06-2007 à 15:59:12    

Je crois que nombre de choses ne sont pas claires pour toi.
 
Y'a quoi dans ta dll ?
Certainement pas de l'asm.


---------------
Töp of the plöp
Reply

Marsh Posté le 27-06-2007 à 16:10:02    

certainement que tout n es pas tres clair!
pour moi  de ce que je comprendre : mon fichier .dll comprend mon projet princpal. (dans mon projet j ai un fichier .cs, .xml, un dossier image, des references a des bibliotheque)
Je t'ai dis que c est style code machine! parce que qu en tu l ouvre c est pas un langage! c est une suite de caractere incomprehensible

Reply

Marsh Posté le 27-06-2007 à 16:13:51    

il faudrait pas ouvrir la dll mais le projet de la dll [:pingouino dei]


---------------
Töp of the plöp
Reply

Marsh Posté le 27-06-2007 à 16:19:25    

Bon voila un exemple ....
 
Ton application qui utilise ta DLL :
 

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8.  
  9. namespace MonApp
  10. {
  11.    public partial class Form1 : Form
  12.    {
  13.        public Form1()
  14.        {
  15.            InitializeComponent();
  16.        }
  17.  
  18.        private void button1_Click(object sender, EventArgs e)
  19.        {
  20.            MaClassLibrary.MaClass monObject = new MaClassLibrary.MaClass();
  21.            label1.Text = monObject.Coucou();
  22.        }
  23.    }
  24. }

Ta DLL (Blibliotheque de Classes) :
 

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace MaClassLibrary
  6. {
  7.    public class MaClass
  8.    {
  9.        public string Coucou()
  10.        {
  11.            return "Coucou";
  12.        }
  13.    }
  14. }

Reply

Marsh Posté le 27-06-2007 à 16:21:57    

je comprend pas la!
mon projet principal comprend dans le repertoire bin truc.dll (truc etant le nom de mon projet).
Quand je veu ajouter une reference à ma windowsapplication je doi bien ajouter truc.dll.

Reply

Marsh Posté le 27-06-2007 à 16:27:03    

je t aime a écrit :

certainement que tout n es pas tres clair!
pour moi  de ce que je comprendre : mon fichier .dll comprend mon projet princpal. (dans mon projet j ai un fichier .cs, .xml, un dossier image, des references a des bibliotheque)
Je t'ai dis que c est style code machine! parce que qu en tu l ouvre c est pas un langage! c est une suite de caractere incomprehensible


Voici la définition d'un fichier DLL : http://fr.wikipedia.org/wiki/Bibliothèque_logicielle
 

Citation :

En informatique, une bibliothèque logicielle est un ensemble de fonctions regroupées pour réaliser un groupe de tâches du même domaine. Les bibliothèques logicielles se distinguent des exécutables dans la mesure où elles ne sont pas complètes, elles ne possèdent pas l'essentiel d'un programme comme une fonction principale et par conséquent qu'elles ne peuvent pas être exécutées directement. Les bibliothèques peuvent regrouper des fonctions simples (par exemple le calcul d'un cosinus, ou l'inversion d'une matrice) comme des fonctions complexes avec de nombreuses fonctions internes non accessibles directement. Généralement, l'intérêt des bibliothèques réside dans le fait qu'elles peuvent être partagées par plusieurs exécutables.


Au vu de ce que tu veut faire, ton projet "principal" doit etre un "executable" comme une Application Console, Windows, ou Web.
 
Tu dois ensuite ajouter a ton projet "principal" des référence a tes bibliothèques (DLL). http://msdn2.microsoft.com/en-us/l [...] S.80).aspx
 
Tu devrais avant de te lancer dans le vide te documenter plus sérieusement car tu semble confondre pas mal de notions indispensables

Reply

Marsh Posté le 27-06-2007 à 16:30:39    

je t aime a écrit :

je comprend pas la!
mon projet principal comprend dans le repertoire bin truc.dll (truc etant le nom de mon projet).
Quand je veu ajouter une reference à ma windowsapplication je doi bien ajouter truc.dll.


Non, c'est une référence vers le projet, pas la dll à proprement parler.


---------------
Töp of the plöp
Reply

Marsh Posté le 28-06-2007 à 12:32:16    

:sweat:

Reply

Marsh Posté le 28-06-2007 à 12:36:18    

Ouvre VS.
 
"Nouveau Projet"
Choisi "Bibliothèque de classe"
Nom "prout"
 
Dans ton nouveau projet, t'as un fichier "prout.cs" qui s'affiche, avec une classe "prout".
Tu ajoutes dedans une méthode :
 

Code :
  1. public string GetProut()
  2. {
  3.  return "prout";
  4. }


 
Ensuite, tu ajoutes un nouveau projet à ta solution.
De type "application console".
Nom "testprout".
 
T'as une page sur le fichier testprout.cs qui s'ouvre.
Dans références, tu fait "ajouter référence".
Onglet "projet"
Tu ajoutes "prout"
 
Ensuite, clic droit sur le projet "testprout", "projet de démarrage" (il passe en gras)
 
Dans le code testprout.cs tu fais :
 

Code :
  1. prout p = new prout();
  2. Console.Writeline(p.GetProut());


 
Après, si tu comprends pas comment ça marche...

Reply

Marsh Posté le 30-06-2007 à 23:22:12    

il y en a qui ont vraiment bcp de patience ici :D
 
qu'il s'achete un bouquin et qu'il le lise merde. Il a rien compris à la programmation je suis désolé. Avant de poser des bêtes questions aussi élémentaires, faut au moins s'être correctemetn documenté avant.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed