Anoche me encontraba leyendo la documentacion de los RFC del XMPP para poder implementar las funciones que estoy haciendo para manipular los XML que envio y recibo del servidor XMPP. Dado que las voy a poner dentro de una DLL para que otros usuarios la utilizen desde cualquier lenguaje de programacion me surge una duda. ¿Como podria declarar yo una funcion dentro de la DLL para que no tenga problemas al usarlo con algun otro lenguaje de programacion?. O sea con que tipo de datos declaro los parametros?. Estuve pensando en declarar los parametros como
PChar para la compatibilidad y que todas las funciones sean con
stdcall al final.
Diganme que creen de esto. Por ejemplo como seria la forma correcta de declarar esta funcion en una DLL para poder utilizarla en otros lenguajes??
Código Delphi
[-]
function xmpp_login(pUserName, pPassword, pResource: String): WideString;
var
cXMLDoc: TXMLDocument;
begin
cXMLDoc := TXMLDocument.Create(Form1);
try
cXMLDoc.XML.Text := xmpp_res_login;
cXMLDoc.Active := True;
cXMLDoc.DocumentElement.ChildNodes['query'].ChildNodes['username'].Text := pUserName;
cXMLDoc.DocumentElement.ChildNodes['query'].ChildNodes['password'].Text := pPassword;
cXMLDoc.DocumentElement.ChildNodes['query'].ChildNodes['resource'].Text := pResource;
Result := cXMLDoc.XML.Text;
finally
cXMLDoc.Free;
end;
end;
Esa funcion actualmente con una llamada como esta
Código Delphi
[-]
Memo1.Text := xmpp_login('fide_uci', 'myP@sSw0rd', 'nombre_pc');
me devuelve esto.
Código:
<iq type="set" id="auth_id"><query xmlns="jabber:iq:auth"><username>fide_uci</username><password>myP@sSw0rd</password><resource>nombre_pc</resource></query></iq>
Alguien que me diga que cree de esto y como seria la mejor manera de declararla dentro de una DLL para que no tenga problema alguno de compatibilidad.