[DLL] Comment faire communiquer plusieurs instance ???

Comment faire communiquer plusieurs instance ??? [DLL] - Programmation

Marsh Posté le 02-12-2001 à 13:35:05    

Voila, j'ai une DLL qui est utilisé dans un prog et je stocke dans certaine variable de cette dll des informations.
 
Je voudrait depuis un autre programme, charger cette DLL et pouvoir acceder aux infos stockée dans ces variable
 
C faisable ? Comment ?

Reply

Marsh Posté le 02-12-2001 à 13:35:05   

Reply

Marsh Posté le 02-12-2001 à 13:42:54    

Code :
  1. #pragma data_seg( "shared" )
  2. int i;
  3. long machin;
  4. #pragma data_seg()


option de liaison: /SECTION:shared,RWS
shared c juste le nom de la section


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 02-12-2001 à 14:02:25    

Merci bcp
 
Je me rapellait plus exactement comment on faisait ca.
 
Et autre truc, pour eviter les acces simultané, y a pas un truc de verouillage mutex ou autre ?

Reply

Marsh Posté le 02-12-2001 à 14:10:08    

Ok c bon j'ai trouvé ... Les mutex de win fonctionne entre processus different.

Reply

Marsh Posté le 02-12-2001 à 14:33:11    

Euh, y me met un warning comme quoi la section que je donne dans /SECTION n'existe pas ...
 
Et quand je fait un dumpbin, en effet elle n'y est pas

Reply

Marsh Posté le 02-12-2001 à 14:44:39    

je viens d'essayer ca marche nikel
tu le met ou /SECTION?


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 02-12-2001 à 14:46:18    

// Linker options
#pragma comment(linker,"/SECTION:.shar_gv,RWS" )
 
// Create a shared space memory to allow sharing of information
#pragma data_seg( ".shar_gv" )
 
char test[10];
 
// Come back into normal segment
#pragma data_seg( )

Reply

Marsh Posté le 02-12-2001 à 14:54:06    

si je met
 
char *test;
 
ca foire, par contre avec
 
char *test = NULL;
 
la ca marche ... Enfin bon, je vais initialiser toute mes variable comme ca je suis sur que ca marchera. Peut etre que si je les initialise pas, il les alloue dynamiquement

Reply

Marsh Posté le 02-12-2001 à 14:57:19    

Citation :

Specifies the data segment where initialized variables are stored in the .obj file

 

[edtdd]--Message édité par deathsharp--[/edtdd]


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 02-12-2001 à 15:00:13    

evidemment ...
 
T'a eu ca ou ?  moi dans MSDN dans la doc de data_seg il me dit
 
"Specifies the default section for data." ce qui est pas clair

Reply

Marsh Posté le 02-12-2001 à 15:00:13   

Reply

Marsh Posté le 02-12-2001 à 15:08:16    

data_seg dans MSDN
 
en fait je voulais insiter sur le fait que les variables devaient etre init


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 02-12-2001 à 15:10:32    

beuh on a pas le meme msdn ...
 
Enfin pas grave maintenant je le sais

Reply

Marsh Posté le 02-12-2001 à 15:14:10    

"MSDN for Visual Studio.NET 7.0" pour moi


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 02-12-2001 à 15:24:47    

MSDN pour visual c++ 6.0 pour moi ... Ai pas le .NET moi ...

Reply

Marsh Posté le 04-12-2001 à 14:46:32    

Et comment je fait pour partager un tableau par exemple ?
 
exemple j'ai uen struct team_info
 
et j'ai un tableau  team_info s_vTeams[16];
mais comme il est pas initialisé il veut pas le prendre ... comme le forcer ???
 
Parce que si je partage un pointeur et que je fait un malloc, est ce que la memeoire allouée par le malloc sera accessible des deux coté ?

Reply

Marsh Posté le 05-12-2001 à 01:00:08    

OUAIS!!! ils l'ont dit hier à question pour un champion mais je m'en rapelle plus!!
C'est con hein!!
enfin sinon tu peux tjs tenter un counter-balanced shared over ethernet-ip de la struc interne du segment overheaded concerné à condition de considérer le load-balancing interne de ta chaîne pseudo-C++-cryptée. Enfin si tu me suis, tu verras assez vite que la question Q15843968743485154834148 du msdn (de loin la plus connue) répond exactement à ta question mais peut-être qu'elle ne sera disponible que d'ici quelques siècles à cause du transfert d'ion de meta-tableaux de .Net-IPV6 vs ../../gcc.
Tout cela bien sûr dans l'hypothèse d'un monde parfaitement homogénéisé au CVBC++J++C#J#FOXPROXXXX^4561 où 4561 représente l'ordinal en Kelvins!!
 
allez bonne nuit et si tu comprends pas tout c'est que ton cerveau n'est pas apte à saisir la complexité du problème ainsi que de ma réponse brièvement exposée.
 
@+

Reply

Marsh Posté le 05-12-2001 à 02:02:09    

Y'en a un qui vient de partir chez les TeleTubbies direct!
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 05-12-2001 à 15:53:09    

Wavyx a écrit a écrit :

OUAIS!!! ils l'ont dit hier à question pour un champion mais je m'en rapelle plus!!
C'est con hein!!
enfin sinon tu peux tjs tenter un counter-balanced shared over ethernet-ip de la struc interne du segment overheaded concerné à condition de considérer le load-balancing interne de ta chaîne pseudo-C++-cryptée. Enfin si tu me suis, tu verras assez vite que la question Q15843968743485154834148 du msdn (de loin la plus connue) répond exactement à ta question mais peut-être qu'elle ne sera disponible que d'ici quelques siècles à cause du transfert d'ion de meta-tableaux de .Net-IPV6 vs ../../gcc.
Tout cela bien sûr dans l'hypothèse d'un monde parfaitement homogénéisé au CVBC++J++C#J#FOXPROXXXX^4561 où 4561 représente l'ordinal en Kelvins!!
 
allez bonne nuit et si tu comprends pas tout c'est que ton cerveau n'est pas apte à saisir la complexité du problème ainsi que de ma réponse brièvement exposée.
 
@+  




g toujours eu du mal a comprendre les cretins.
allez savoir pourquoi...


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 06-12-2001 à 09:01:03    

;) Au fait c une private joke entre moi et wavyx ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed