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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager