Bonjour a tous,
Je cherche a faire communiquer une application Java avec une application Authorware.
Authorware ne communique pas directement avc l'exterieur mais peux utiliser des DLL. J'ai donc pense a faire un serveur cote Java et un client dans une DLL en C.
J'ai donc fait une application console qui lit bien ce qu'envoi mon serveur. Le probleme c'est que la meme fonction place dans une dll ne compile pas du tout.
Le contenu du fichier principal de la dll est ceci:
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws_32.lib" )
#define EXPORT
void EXPORT readJava(char buffer2[255])
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char *buffer=new char[0];
int check_recv=1;
int count=0;
int check_connect=0;
int n_array=0;
int i;
sock=socket(AF_INET,SOCK_STREAM,0);
sin.sin_addr.s_addr = inet_addr("127.0.0.1" );
sin.sin_family = AF_INET;
sin.sin_port = htons(1234);
while((check_connect=connect(sock,(SOCKADDR *)&sin,sizeof(sin)))==-1 && count <10)
{ count++; }
if (check_connect==0)
{
while(check_recv>0)
{
check_recv=recv(sock,buffer,sizeof(buffer),0);
if (check_recv>0)
{
for(i=0;i<check_recv;i++)
{
buffer2[i+n_array]=buffer[i];
}
n_array=n_array+check_recv;
}
}
}
for(i=n_array;i<=255;i++)
{
buffer2[i]=NULL;
}
closesocket(sock);
WSACleanup();
return;
}
Je cherche simplement a savoir comment faire fonctioner cette fonction dans une dll. Ou si vous avez une autre solution au probleme Java-Authorware, je prend ausi.
D'avance merci
Baptiste