J'essaie d'utiliser une DLL COM de VC++ 2005. J'ai créé un TestCOMlib.dll avec ATL, créé une interface simple ISimple et ajouté une propriété (type LONG, name Property01) et une méthode (name Method01). La DLL semble être correctement enregistrée dans le système (j'utilise OleView pour vérifier les entrées).#import conduire à un HRESULT 0x80040154 "Classe non enregistrée"
J'ai créé une simple application de dialogue MFC pour utiliser la DLL COM. J'utilise la directive # import pour incorporer des informations de la bibliothèque de types. Visual Studio a créé pour moi le fichier tlh et tli.
Puis j'ai essayé d'obtenir l'interface ISimple mais j'obtiens l'erreur 0x80040154. Le code Je cours à l'intérieur de l'application de test est le suivant:
HRESULT hr = S_OK;
hr = CoInitialize(NULL);
ISimplePtr myRef(__uuidof(ISimple));
// Test prop and method
myRef->Property01 = 5;
LONG test = myRef->Property01;
LONG ret = myRef->Method01(_T("Test input"));
ret = myRef->Method01(NULL);
myRef = NULL;
CoUninitialize();
La ligne renvoyant l'erreur 0x80040154 est ISimplePtr myRef (__ uuidof (ISimple)). OleView affiche correctement l'interface et dans le registre les entrées semblent être bonnes.
Qu'est-ce que je fais mal? Une idée?
Cordialement
Oups, nous avons trouvé le problème. Je dois remplacer __uuidof (ISimple) par __uuidof (Simple). – gionny