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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    LEK
    LEK est d�connect�
    Membre �clair�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    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
    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 �clair�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    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
    Par d�faut
    je ne comprends pas, ton code est un exe ?

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    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
    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 �clair�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    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
    Par d�faut
    Dans msdn ils parlent de CAtlAutoThreadModule

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    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 �clair�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    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 �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    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