08. januar 2001 - 09:36Der er
24 kommentarer og 2 løsninger
Overførsel af data mellem VB og C++ modul
Hvordan overfører man data mellem et VB modul og et C++ modul. Uden at bruge metoden med at gemme en tekstfil? (Så overførslen af data foregår i RAM-modulet)
Blazer: Ved shell da kalder man en procedure, da overfører men ingen data som sådan. Hvis man ikke havde behov for at føre data i begge retninger af modulet, kunne man meget muligt bruge Shell. Men da der først skal sendes en kommando til C++ modulet, og derfra igen sendes en værdi tilbage til VB modulet så går den desværre ikke. Ellers tak!
VB modul, C++ modul, RAM-modul - det ville være en stor fordel hvis du forsøger at gøre lidt mere ud af formuleringen af dine spørgsmål. De to tidligere spørgsmål du har stillet angående det samme problem, http://www.eksperten.dk/spm/38052 fra 12/12 og http://www.eksperten.dk/spm/39396 fra 20/12, blev du jo nødt til at lukke uden at få noget brugbart svar.
pstric-> Du har ret, jeg fik ikke noget brugbart svar i det foregående (og lign. spørgsmål) og jeg tror at grunden til det er at jeg netop kastede mig ud i for store tekniske begreber. Alt hvad jeg ønsker er en kommunikation mellem et C++ program (som skal modtage enkelte informationer, for at udføre en måleopgave, behandle svaret og sende dette svar retur til VB-modulet.) Det hele kører på en ikke Windows bagrund, men derimod på en PSION (workabout). Derfor skal alt kommunikation foregå uden save file kommandoer og lign. jeg lukkede de foregående spørgsmål fordi jeg mente at have en løsning, dog virkede de ikke.
Modulerne er færdige, jeg mengler blot en måde at kunne kommunikere imellem dem... Det må da findes en simpel metode, måske skal jeg skrive, mangler kommunikation fra VB til en DLL?
Grunden er ikke alene at du har kastet dig ud i for meget, men i højere grad, at du ikke gør nok ud af dit spørgsmål. Du bliver nødt til at komme med noget mere konkret for at kunne få hjælp.
Kom med et link til den der workabout, hvor man kan se lidt mere.
Og det der OVAL, hvad er det for en størrelse. Kom med et link, og skriv også selv lidt om hvad det er.
Og få styr på begreberne. Nu kan jeg så forstå at C++ modulet er et selvstændigt program, men er VB modulet også det?
Har du sourcekoden til både C++ modulet og VB modulet?
Hvad mener du helt præcist med at C++ programmet skal modtage enkelte informationer? Gør det det over TCP/IP? Eller ligger begge programmer på samme computer?
--------------------------
Bare tag dig god tid med at formulere dit spørgsmål. Indtil videre er der gået en måned uden at du har fået noget svar, så du kunne godt lige bruge lidt tid inden du stiller spørgsmålet.
Jeg har brugt tid på at sidde og finde på et svar til dig om, hvordan du kunne bruge file mapping, og så er det altså lidt surt at opdage, at du slet ikke kan bruge det til noget.
Dine spørgsmål er simpelthen for sjuskede, og det kan du ikke være bekendt overfor os andre, der så sidder og spilder vores tid.
Jeg er ked af at at du har brugt en H.... masse tid blot for at hjælpe (og du har nok ret, mit spørgsmål er ikke sjusket men simpelt sat op, jeg ville ikke uddybe spørgsmålet for at skræmme evt. svarere bort, og håbede derved at de svarere der kom ind kunne stille mig de nødvendige spørgsmål for så at kunne få de oplysninger de manglede tja det gjorde du, faktisk som den eneste).
Problemstilling: (Undskylder på forhånd for det tekniske rod) Jeg har en Driver der er skrevet i C++, denne driver ønsker jeg at afprøve for at se om den virker, driveren skal afprøves på en håndterminal (PSION -Workabout, http://www.enterprise.psion.com/public/products/workaboutmx.htm)Mere kender jeg ikke selv til produktet, derfor måske det mangelfulde i spørgsmålet. Jeg har dertil så fundet et program, hvor man kan programmere direkte til/på workabouten men bare på en stationer PC (Dette program hedder Oval, og burde efter egen mening ligne VB, måske ikke som 32bit mere som DOS, jeg ved det ikke kender ikke sproget godtnok, derfor skal kommunikationen bare ligne en til VB.
Det driveren gør, er at hente de oplysninger den for besked på, disse beskeder skal den vel så have via VB. De oplysninger C++ modulet så henter skal sendes tilbage til VB og vises på displayet. Jeg ved ikke om C++ programmet er færdigt da jeg ikke har forstand på denne del, og det samme er gældende for VB-modulet. Disse to moduler skal kunne \"snakke\" sammen, uden TCP/IP uden netBIOS, de skal på en måde kunne bytte data ligeover (som på PC\'en via OLE, men da enheden ikke er Windows mindet, dur dette ikke).
Jeg har svært ved at forklare det bedre da jeg selv fo ca. en måned siden blev kastet hovedkuls ud i en driver der skulle testes, og derfor undskylder jeg min manglende viden for at kunne stille spørgsmålet bedre.
Jeg bruger porten der sidder i dockingen til den, porten hedder LIF-PFS, problemmet er bare at når driveren skal op at køre så har den ingen forbindelse til PC\'en (hvis driveren da ellers virker), RS232 porten bliver brugt af driveren til at aflæse en ekstern enhed (enhederne kan ses her: http://www.viterra.dk/Produkter/Indexprodukter.htm)
Så som sådan er der ingen protokoler der skal bruges. Programmet skulle gerne engang kunne køre uden brug af nogen form for forbindelse til PC, så man kan rende rundt med en psion, med den driver jeg har, og udføre nogle målinger.
Programmet skullle gerne engang virke sådan: 1. Besked gives af brugeren af Psion, brugerfladen er Oval (VB) 2. Besked giver C++ modul information om at hente det påkrævede (måske serienr. på ekstern enhed) 3. C++ modulet udfører handlingen (C++ modulet har/ er en protokol som kommunikerer via RS232 porten på PSION) spørger ekstern enhed om serienr. 4. serienr. sendes tilbage til Oval (VB) 5. Oval (VB) viser brugeren serienr.
Det er svært at forklare nærmere, og håber du har forstået hvad det er jeg ønsker, det er nemt for mig at sige at løsningen ikke dur, uden at give de fulde informationer.
Ikke helt,men tæt på, driveren og Oval programmet skulle meget gerne begge ligge på PSIOn\'en, det er brugerfladen til driveren der skal skrives i Oval. derfor skal disse kunne kommunikere sammen uden kabler og skidt og møg (måske kommer det ud på det samme, altså det med om det er en kommunikation mellem disse to program dele, over mindre netværk eller direkt mellem hinanden.)
C++ modulet er ikke compileret, er stadig i C++ normal kode (Så hvis du kender en metode til at få C++ overført direkte til VB, så accepterer jeg også den løsning)
Der er nogle komandoer der hedder stdin og stdout, som kan kaldes fra vb og vc med api. De skulle kunne snakke sammen, og det er også det man bruger som services, når de skal snakke med et control panel, eller whatever. Jeg har dog aldrig fået det til at virke, så du kan søge lidt på det, og sig lige til hvis du finder noget,
Jeg vil lige kikke på de kommandoer du sendte. eftersom driveren ikke er kompileret, men rå C++ kode, så tror jeg at du har fundet noget her der muligvis kan give en løsning.
Jeg har kun sourcen til driveren, kender ikke programmøren, og han har ikke dokumenteret driveren specielt, det eneste der findes er lidt på tysk (og hvem kan lide det sprog). Har derudover lige fundet ud af, at der mangler nogle enkelte headerfiler til C++ sourcen. Programmøren afleverede koden med udsagn om at nu var den færdig (dette blev gjort en gang i 1999), så har den ligget til jeg fik opgaven at skulle teste om driveren nu også virkede... Så jeg går stærkt udfra at driveren er færdig, og når headerfilerne er der så skal den nok også virke. Spørgsmålet er jo blot om den kunne arbejde sammen med Oval, og om man kunne bruge Oval som interface?
pstric -> Du har ført mig på rette spor, har dog ikke afprøvet det 100% da jeg mangler at kompilere C++ modulet. Men du fortjener disse point, da du så ihærdigigt kæmpede dig frem til et godt svar. Tak!
chris2k -> Du fik lidt, da du fandt nogle kommandoer som jeg ikke normalt havde kendskab til, og som muligvis kunne værre en løsning. pstric havde dog mere fat i den rigtige ende.
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.