Objets COM comment ça marche? C'est relativement urgent - C++ - Programmation
Marsh Posté le 06-11-2001 à 20:21:13
Ben en fait tu devrais commencer par apprendre a programmer avec DirectDraw peut etre... Car en fait DirectX n'est composé que d'objects COM et donc la t'aurais un exemple d'utilisation concrete de COM. De plus, c'est tres tres facile a trouver ca
Marsh Posté le 06-11-2001 à 20:57:19
j'ai comencé direct draw mais j'ai pas trop trouvé ça instructif surles mécanismes généraux du com
Marsh Posté le 06-11-2001 à 21:02:42
http://www.microsoft.com/com/
ils ont pas mal de docu. qui explique assez bien ce qu'est COM
Marsh Posté le 05-06-2002 à 11:01:54
Qqn saurait il où je peux trouver un bon tutoriel sur les objet com
Marsh Posté le 05-06-2002 à 11:36:34
En fait il me faudtrait un truc qui explique comment utiliser CoCreateInstance (comment on chope les CLSID, les IID... et pourquoi cette conne de fonction me renvoie un code d'zerreur non référencé!)
pour info voilà le code tappé:
ITaskScheduler *schedulerInterface;
long result = CoCreateInstance(CLSID_CTaskScheduler,NULL,CLSCTX_LOCAL_SERVER ,IID_ITaskScheduler,(void**)&schedulerInterface);
Marsh Posté le 05-06-2002 à 11:49:48
ben non justement j'ai pas trouvé
Marsh Posté le 05-06-2002 à 11:54:15
2147746288UL soit (0x800401F0) en hexa, il n'est pas référencé dans la MSDN j'ai un switch qui teste toutes les valeurs de retour de cette fonction ça en fait pas parti.
Marsh Posté le 05-06-2002 à 12:03:43
c'est normal que ça n'ait pas marché, il faut appeler CoIniatilize[Ex] ( dans ton cas CoInitialize() devrait marcher même si c'est démodé )avant toute utilisation de COM.
Et de plus pour tout message d'erreur, il faut utiliser FormatMessage comme avec ce code de MSDN
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
0x800401F0,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
En utilisant ce code, le message est "CoInitialize n'a pas été applé"
Marsh Posté le 05-06-2002 à 21:20:22
letoII a écrit a écrit : Merci beaucoup, ça marche |
De rien
Marsh Posté le 06-11-2001 à 19:49:50
Je cherche de la doc sur comment on utilise les objets com si et pour l'instant je trouve pas, si qqn pouvait me donner un coup de main ce serait sympa
Message édité par LetoII le 06-05-2002 à 11:16:02