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 ?