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 :

C# + dll en C


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 40
    Points : 28
    Points
    28
    Par défaut C# + dll en C
    Bonjour a tous,

    Pour des besoins bien spécifique (calculer la position du soleil a 0.001 degrés prêt), j'utilise du code en C.
    Pour être honnête je suis pas capable de le convertir en C#.

    Bref j'en fait un DLL, je l'utilise dans mon code C#, tout marche en debug chez moi, et... des que je compile le projet (release et non debug donc), ça ne marche plus! En gros j'ai un problème (je crois) dans la config du projet, ça doit faire 3 mois que je tourne autour du sujet, et je ne comprend pas...

    Pour exposer mon problème, j'ai créé (voir ci joint) une solution minimaliste: le projet DLL avec le fameux code + un mini projet C# qui utilise la DLL, affiche le résultat (ainsi que le résultat attendu).

    Pour finir, mes contrainte sont: .NET 2.0 (pour être compatible win XP SP1 natif) + compatible 32 et 64bit.

    Voila, je sais que ma question n'est pas simple (devoir regarder un fichier joint pour comprendre...), mais je n'ai pas mieux a proposer (meme si je suis ouvert a toute solution).
    Merci d'avance!
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    il semble que l'optim' de compilation de ta DLL fait souci.
    Si tu la fais sauter en Release ça devrait fonctionner.
    Maintenant il serait plus intéressant de comprendre le pouquoi du comment du keskekoi, j'avoue.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Effectivement, il semblerait que les optimisations du code C soient la cause du bug. Il reste à déterminer exactement d'où provient le soucis.

    Est-ce le code en C lui même qui bug lorsqu'il est optimisé. Il suffit de faire un programme en C pour le vérifier. Si tout fonctionne, c'est que c'est au niveau de l'interopérabilité que cela à des conséquences. On pourrait imaginer par exemple que la représentation de la structure en mémoire soit modifiée par les optimisations...
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonjour, et merci de vos réponses.
    Je vous prie de bien vouloir excuser cette réponse tardive, j’étais persuade d'avoir déjà poste un premier 'merci des conseils' dans la foulé.

    J'ai effectivement passé ces trois derniers mois a jouer avec les paramètres comme l'optimisation du code C (ça m'a un peut débloquer), mais j'avais toujours d'autres problèmes: des dépendances vis a vis d'autres dll sur certains ordinateur, la gestion du 32/64 bit, et j'en passe...

    Bref j'ai pris le taureau par les cornes et j'ai converti le tout en C#. Bref, après compilation, je me retrouve avec un seul fichier '.exe', et comme je me suis forcé a utiliser .NET 2.0 -> compatible tous Windows a partir de XP.
    La morale, pour ma part, sera: les DLL, c'est possible, ça marche (mais attention aux dépendances), mais coder en full C#, c'est tellement mieux!

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

Discussions similaires

  1. [CR] Infos sur l'utilisation de dll
    Par step dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 09/08/2002, 11h35
  2. Declarer une dll Delphi ?
    Par DelphiCool dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 10h07
  3. Débug de DLL
    Par Bayard dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/07/2002, 15h08
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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