Avatar billede narrr Nybegynder
25. august 2003 - 20:20 Der er 5 kommentarer og
1 løsning

Send streng til andet program

Heja.
Jeg skal have sendt en tekststreng fra et program til et andet.. Nogen forslag? Jeg tænkte først på at bruge WM_CHAR, men problemet er at der godt kan være flere programmer der sender samtidig, og hvis det er tilfældet bliver strengene jo blandet sammen med WM_CHAR som kun sender 1 tegn af gangen. Jeg ville gerne sende en pointer til tekststrengen, men det kan jeg ikke rigtig hitte ud af :(

Jeg bruger visual c++ og WINAPI, dvs ikke mfc eller den slags.
Avatar billede arne_v Ekspert
25. august 2003 - 20:40 #1
Du kan ikke bare sende den en pointer til noget private virtual memory.

Et bud var global memory.

Se f.eks.:
http://www.codeproject.com/threads/sharedmemipc.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfilemapping.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/mapviewoffile.asp

Ikke helt simpelt, men meget effektivt.

Og ren Win32 API.
Avatar billede s.nielsen Nybegynder
25. august 2003 - 21:01 #2
Du kan også overveje at bruge sockets. Efter min mening er det en smule nemmere at gå til, plus de to programmer kan køre på to forskellige computere - hvis det skulle blive interessant på længere sigt. Mange linux applikationer udnytter sockets til den slags og det giver altså nogle fordele i den retning. Afhængig af hvor mange forskellige informationer der skal sendes frem og tilbage, kan du vælge at "pakke det ind" i xml.
Avatar billede narrr Nybegynder
25. august 2003 - 21:33 #3
Egentlig har jeg fået lavet mit problem om til at alle programmerene skal have adgang til 1 shared integer. Skal jeg stadig kigge på det der global memory, eller kan man lave det anderleders ?
Avatar billede arne_v Ekspert
25. august 2003 - 21:37 #4
Shared memory er en udmærket løsning derved at alle programmer kan indeholde
"den samme" variabel.

Det er måske lidt voldsomt at lave et stykke global memory for 4 bytes.
Men jeg synes stadigvæk at det er en god ide.
Avatar billede bertelbrander Novice
25. august 2003 - 23:00 #5
Man kan bruge ATOM'er til at sende text strenge mellem applikationer, se et eksempel her:
http://www.eksperten.dk/spm/385493
Avatar billede narrr Nybegynder
26. august 2003 - 19:48 #6
Jeg fik lavet noget global memory med arnes forslag. Eneste forskel på det oprindelige problem og det jeg har løst nu, er at jeg gemte en integer istedet for en string. Det er måske lidt svært at se hvordan en integer kan være lige så god som en string, men det er bare en anden strategi til at løse det overordnede problem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester