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

MFC Discussion :

[ATL][MFC?]Ecrire une dll pour ASP


Sujet :

MFC

  1. #1
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut [ATL][MFC?]Ecrire une dll pour ASP
    Bonjour à tous je cherche à écrire une dll pour asp depuis VC7, est ce que vous sauriez comment je dois m'y prendre, ou alors où je pourrais trouver un tutoriel ou cours assez clair sur le sujet...
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu peux par exemple faire une dll ATL ou une dll MFC

    Par contre, pas de tutoriel sous ma main, mais avec le classwizard, ca va tout seul

  3. #3
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Et bien justement j'ai créé une dll atl, mais alors que mon code fonctionne parfaitement en exe standard, il ne provoque pas d'erreur mais n'aboutit pas en tant que dll ATL...

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    je ne comprends pas, ton code est un exe ?

  5. #5
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Non je m'explique :
    comme tu as pu le deviner je suis novice en C++,
    je viens de récupérer un code qui fonctionne en exe avec un récupération des arguments sur la ligne de commande et traitement...
    j'ai besoins des mêmes fonctionnalités au niveau d'un site asp mais sans avoir à appeler un exe et donc plus facilement en instanciant une dll,
    j'ai donc réécris le code de l'exe dans une dll ATL en passant les arguments par une méthode de l'objet.

    Le problème c'est que le composant ne me donne pas de résultat même s'il ne provoque pas d'erreur... En fait j'ai vraiment l'impression d'être à 2 doigts du produit fini mais je n'arrive pas à mettre le doigt sur le problème. Si il y a des volontaires pour voir mon code je leur envoie sans problème

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu sais si tu passes dans le code de la dll quand meme ?
    tu as essayé de debbuger ? ASP arrive-t-il à instancier ton objet ?

  7. #7
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    En fait oui j'arrive à instancier sans problème.
    Mon souci c'est lorsque j'appelle la seule méthode de l'objet qui effectue le travail suivant :
    - chargement en mémoire d'une page de ie
    - copie de la sortie écran

    pour cela l'ancienne fonction main de l'objet était codée comme cela :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    static CComModule _Main;
     
    int _tmain(int argc, _TCHAR *argv[])
    {
    	long lWidth = 800;
    	long lHeight = 600;
     
        if (argc != 5)
        {
    		printf("Usage: %s http://www.example.org/ localfile.png {width} {height}\n", argv[0]);
            return EXIT_FAILURE;
        }
     
        HRESULT hr = _Main.Init(NULL, ::GetModuleHandle(NULL), &myGUID);
     
        if (FAILED(hr))
            return EXIT_FAILURE;
     
        if (!AtlAxWinInit())
            return EXIT_FAILURE;
     
        CMain MainWnd;
     
        MainWnd.m_URI = argv[1];
        MainWnd.m_fileName = argv[2];
     
    	if (argv[3] != "") lWidth = atol(argv[3]);
    	if (argv[4] != "") lHeight = atol(argv[4]);
     
        RECT rcMain = { 0, 0, lWidth, lHeight };
        MainWnd.Create(NULL, rcMain, _T("IECapt"), WS_POPUP);
     
        MSG msg;
        while (GetMessage(&msg, NULL, 0, 0)) 
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
     
        _Main.Term();
     
        return EXIT_SUCCESS;
    }
    Mon souci c'est que l'instruction suivante me provoquait une erreur :
    static CComModule _Main;

    j'ai donc cherché des infos sur msdn, ce qui en est ressortit c'est que cette écriture n'était plus disponible sous VC 7 et que l'ancienne classe CComModule a été remplacé par plusieurs autres classes.
    J'ai donc du enlevé l'instruction, j'ai aussi enlevé l'instruction _Main.Init et _Main.Term.

    Est ce que pour cela mon code effectue une boucle inifinie lors de l'appel? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        MSG msg;
    	    while (GetMessage(&msg, NULL, 0, 0)) 
    	    {
    	        TranslateMessage(&msg);
    	        DispatchMessage(&msg);
    	    }
    J'ai eu énormément de mal à trouver la doc et à comprendre le fonctionnement sachant que jusqu'à ce week end j'étais plus un développeur ASP que VC mais bon je pense que tout n'est peut être pas assez clair à ce niveau.
    D'après ce que je comprends la boucle récupère les messages envoyés au système windows puis elle les traduits pour savoir s'ils sont de type caractères tapés au clavier ou autre et enfin elle les dispatch vers les fonctions habilitées a traiter ces messages...

    Ce code était autrefois imbriqués entre _Main.Init() et _Main.Term()
    et _Main était une variable statique, donc je pressens plus que je n
    e sais que l'état général devait être préservé entre ces deux appels et
    qu'en supprimant le code j'ai du créé une boucle infinie...

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Dans msdn ils parlent de CAtlAutoThreadModule

  9. #9
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Oui mais comment s'en servir ?
    Je crois que je vais me replonger dans MSDN et peut être qu'au bout je finirais par comprendre...

    Merci quand même pour l'aide.

  10. #10
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Bon j'ai bien cherché mais c'est le 0 pointé
    J'ai posté sur plusieurs forums et apparamment personne ne peut m'aider

  11. #11
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Salut,

    Ecoute je n'ai pas encore invoqué une dll ATL ou MFC depuis une page ASP mais ce que je sais est que c'est possible.
    Voici une piste pour commencer car il doit en avoir certainement une

    Tu crées un projet en choisit le template "ATL projet"
    A partir de class View tu ajoutes une nouvelle classe dans le projet en choisisant le template ATL Active Server Page Component
    Le wizard te génère un jolie objet COM pour ASP.
    Ensuite tu définis des méthodes pour l'interface de ton composant.
    Ensuite reste avoir comment instancier ton objet ASP COM à partir d'un langage de script comme JScript. Et d'invoquer les différentes méthodes de ton interface de composant.

Discussions similaires

  1. Problème execution d'une DLL en ASP
    Par turcotm dans le forum ASP
    Réponses: 3
    Dernier message: 03/09/2005, 09h16
  2. Réponses: 4
    Dernier message: 02/09/2005, 10h24
  3. Ecrire une dll en C
    Par maritime dans le forum Windows
    Réponses: 1
    Dernier message: 22/08/2005, 11h07
  4. [DLL] Utilisation d'une DLL pour utiliser serveur Firebird
    Par sekiryou dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/08/2004, 14h20
  5. [MFC]Créer une DLL BIS
    Par Furtif_00 dans le forum MFC
    Réponses: 5
    Dernier message: 28/06/2004, 14h48

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