Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1559 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  DLL atl en c++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

DLL atl en c++

n°1239224
ultralek
Posté le 05-11-2005 à 07:21:52  profilanswer
 

Bonsoir à tous, voila mon problème j'ai actuellement une source c++ 7 qui fonctionne sous forme d'un exécutable appelable en ligne de commande, son but est de se connecter à internet et de récupérer une page puis de l'enregistrer sur disque.
J'aimerais réécrire cet exe sous la forme d'une  dll com que je pourrais instancier depuis asp, j'ai donc été amené à recréer une dll atl.
Le problème c'est que la dll en question est instanciable mais ne me fournis pas de résultat. Voici la fonction main de l'exécutable :
 
static const GUID myGUID = { 0x445c10c2, 0xa6d4, 0x40a9, { 0x9c, 0x3f, 0x4e, 0x90, 0x42, 0x1d, 0x7e, 0x83 } };
static CComModule _Modu;
 
int main (int argc, char *argv[])
{
if (argc != 3)
{
printf("Usage: %s http://www.example.org/ localfile.txt\n", argv[0]);
return EXIT_FAILURE;
}
 
HRESULT hr = _Modu.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];
RECT rcMain = { 0, 0, 800, 600 };
MainWnd.Create(NULL, rcMain, _T("Test" ), WS_POPUP);
 
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
 
_Modu.Term();
 
return EXIT_SUCCESS;
}
 
Lors de l'écriture de la dll l'expression : static CComModule _Modu;
provoquais une erreur, j'ai donc réécris une méthode de mon objet ainsi :
 
 
STDMETHODIMP CMaClasse::GetURL(BSTR m_URL, BSTR m_filename)
{
if (!AtlAxWinInit())
return EXIT_FAILURE;
 
CMain MainWnd;
 
MainWnd.m_URI = (LPCSTR) "http://www.google.fr";
MainWnd.m_fileName = (LPCSTR) "c:\test.txt";
 
RECT rcMain = { 0, 0, 800, 600 };
MainWnd.Create(NULL, rcMain, _T("Test" ), WS_POPUP);
 
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
 
return S_OK;
}
 
Cela fait plusieurs jours que je tourne en rond là dessus : le problème provient surement des lignes que j'ai effacées.
Comment faire pour avoir l'équivalent de la déclaration de _Modu et des appels à _Modu.Init() et _Modu;Term() dans ma dll?
Quelqu'un pourrait il m'aider ?

mood
Publicité
Posté le 05-11-2005 à 07:21:52  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  DLL atl en c++

 

Sujets relatifs
Dll pour asp[C++]Appeler une variable globale de DLL en C++
FM20.DLL[VB] Compilation et version de la MSJETxx.DLL
[Win32] new / delete & DLL [résolu]Passer un tableau à 2 dimension via le VB/VBA à une DLL C/C++
[VB .NET]Attaquer une DLL C++ et lui passer et récupérer des Stringsintégrer une DLL à l'exécutable
[Visaul C++] DLL non créée[Builder C++ 6] Utilisation dynamique d'une DLL [résolu...]
Plus de sujets relatifs à : DLL atl en c++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR