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 :

SDK en C++ (non .NET) pour faire un Projet C#


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut SDK en C++ (non .NET) pour faire un Projet C#
    Bonjour,

    j'ai un projet à réalisé en C#,
    ce projet doit permettre la prise de photo (et vidéo) à partir d'un appareil photo NikonD300.

    Normalement, en C++, y'a juste à charger le SDK fourni par Nikon et appeler les différentes API qui vont bien, mais en C#?
    Le SDK fourni par Nikon est en C++ (une .dll, trois .h) et fait appels à des types assez complexe.
    par exemple:
    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
    17
    typedef struct tagNkMAIDObject
    {
    	ULONG	ulType;			// One of eNkMAIDObjectType
    	LONG	ulID;
    	NKREF	refClient;
    	NKREF	refModule;
    } NkMAIDObject, FAR* LPNkMAIDObject;
     
    ou NKREF:
    #ifndef NKREF
    	typedef	LPVOID	NKREF;
    #endif
     
    et LPVOID:
    #ifndef LPVOID
    	typedef	void FAR*	LPVOID;
    #endif
    Faire une DLL en C++ qui peu être appelé en C#, ça je vois, mais lui passer des types aussi complexe qui ne trouvent pas d’équivalence en .NET, ça j'ai pas d'idée.
    Par exemple:


    J'ai regardé du coté des 'Wrapper' et voir si ça serait réalisable, mais j'ai peur de pas avoir bien compris le principe...

    J'ai lu plusieurs articles qui je pense, pourrai m'aider, mais maintenant, je ne sais pas comment m'y prendre pour parvenir à un résultat.
    1. je code des fonctions simplifié pour les actions que j'ai besoins en C++ et j'y fais appel en C#
    2. je pars dans les 'Wrappers' et je creuse là dessus

    Voilà, auriez vous un retour d'expérience?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Points : 60
    Points
    60
    Par défaut
    La solution 1 serait peut-être plus facile à mettre en oeuvre, mais si tu pars sur la solution 2, tu peux lire cet article pour ce qui est des structures et des pointeurs de structures.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    merci pour ta réponse,

    j'ai regardé l'article et ... oui, l'option 1 semble être celle que je vais retenir.

  4. #4
    Membre régulier Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    moi, je travaille en C++ mais j'ai quelques soucis: j'arrive à piloter le nikon (déclenchement de la photo, mode liveview) mais je ne sais pas où sont les datas et donc comment les récupérer ...
    Je me base sur MDSample livré avec le SDK, mais j'avoue que je suis débutante, et je n'y comprends pas grand chose ...

    As tu réussi à capturer une image ? et le liveview ?
    Merci de ton aide.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 312
    Points : 411
    Points
    411
    Par défaut
    Le wrapper est la bonne solution je pense.

    L'idée est de créer une couche qui va présenter des methodes C# pour tes futures classes clientes tout en masquant la complexité liée à l'interfacage avec ta librarie fournisseur.

    Le Wrapper sera un peu long a coder mais une fois terminé tu travaillera dessus comme si tu avais une librarie .NET

  6. #6
    Membre régulier Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Points : 81
    Points
    81
    Par défaut
    euh, moi je suis et je reste en C++ (je sais, je continue un post résolu et en plus je ne suis pas dans le bon, mais j'ai posté à plusieurs endroits sans réponses). J'ai réussi à piloter l'appareil ... Mais pas à récupérer les datas ...
    Donc, j'aurais voulu savoir quelles fonctions il a utilisées !!! Histoire de m'aider ...
    Merci.

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Juin 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Alors le Nikon SDK sous C# t'as choisi quoi comme solution.. tu y es arrivé ?

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

Discussions similaires

  1. [XL-2002] Concatener des cellules non vides pour faire liste d'envoi mail
    Par tchoutchou69 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 25/11/2011, 10h38
  2. Réponses: 14
    Dernier message: 01/03/2011, 11h18
  3. existe t'il un moyen sous .net pour faire l'abstraction des SGBD
    Par Sfaxiano dans le forum Accès aux données
    Réponses: 2
    Dernier message: 30/07/2009, 18h07
  4. utiliser C# ou ASP.NET pour faire du web ?
    Par Rick62 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 28/01/2008, 10h20
  5. Obtenir la lettre de la derniere colonne non vide pour faire un tri.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/10/2007, 15h25

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