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![]()
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![]()
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
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...
je ne comprends pas, ton code est un exe ?
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![]()
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 ?
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 :
Mon souci c'est que l'instruction suivante me provoquait une erreur :
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; }
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? :
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.
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); }
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...
Dans msdn ils parlent de CAtlAutoThreadModule
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.
![]()
Bon j'ai bien cherch� mais c'est le 0 point�
J'ai post� sur plusieurs forums et apparamment personne ne peut m'aider![]()
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.
Partager