2009-06-17 9 views
0

Je suis en train de développer un objet COM utilisant C++ et ATL pour être utilisé par les clients Windows Mobile C++ et C#. L'objet COM enveloppe toute la logique pour se connecter à notre serveur et envoyer/recevoir des données en utilisant notre protocole propriétaire. J'ai de la difficulté à trouver un événement OnReceive qui fonctionne correctement avec C# et C++.Evénement COM avec des données binaires dans les arguments

J'ai défini la fonction d'événement comme celui-ci:

HRESULT OnReceive (BYTE * pBuffer, LONG lSize);

Mais quand je regarde la fonction en C# ou Explorateur d'objets, il sort comme:

OnReceive (octet ref pBuffer, int lSize); Comment traiter l'octet de référence comme pointeur en C#? Comment puis-je transmettre des données binaires à OnReceive et permettre aux clients C++ et C# d'accéder aux données binaires?

Répondre

0

Vous avez essentiellement deux options: utiliser un SAFEARRAY de BYTEs ou bourrer les données dans un BSTR. Ce dernier, bien que moche, était le par défaut hack pour transmettre des données binaires à des composants VB6. Bien que je ne l'aie jamais essayé, je suppose que cela devrait aussi fonctionner pour .Net.

Questions connexes