Oprettet tor. d. 26. maj 2011 kl. 20:32:12

akilleuz
akilleuz (15.999 point. Point ude: 1.065)

DLL funktioner og memory

Hej,

Jeg har et simuleringsvæktøj der kan kalde en DLL fil med en given clock. Inde i DLL filen er der angivet nogle funktioner som kan kaldes fra simuleringes værktøjet.

Jeg er godt med på hvordan DLL filen skal sættes op og har også lavet nogle små programmer, som kan addere, multiplicere osv.

Det jeg har problemer med er hvordan man kan lave en form for hukommelse således at værdierne fra DLL funktionen bliver gemt til næste gang den bliver loadet.

Findes der nogle bøger der forklare noget om dette, eller hvor vil i anbefale jeg skal starte? DLL filen laves i C++.

Med venlig hilsen

Thomas

Skrevet tor. d. 26. maj 2011 kl. 21:30:00| #1

bertelbrander
bertelbrander (17.270 point)
Der er vel mindst 2 måder at gøre det på. Du kan gemme data i windows registry, se f.eks:
http://damb.dk/ (...)
Det er mest hvis du har forholdsvist få data, som brugeren ikke skal kunne rode med.

Alternativt kan du gemme data i en fil, evt. en flad txt-fil, en xml-fil, eller i avancerede tilfælde i en database.

Skrevet tor. d. 26. maj 2011 kl. 21:37:42| #2

akilleuz
akilleuz (15.999 point)
Jeg havde overvejet en for for txt fil, men så skal den helst krypteres, database vil være for meget.

Det jeg håber på er kun at have en DLL fil og evt nogle tilhørende filer.

Hvis jeg germmer data i WinReg, vil de data så ikke ligge der "fast" eller hvordan sørger man for at de bliver slettet næstegang PC'en bliver slukket.


Er det muligt at lave et program der kører som en service eller lign. som DLL'en gemmer data i? Det vil så medføre at man starter og stopper denne service inden man bruger simulerings værktøjet?

Skrevet tor. d. 26. maj 2011 kl. 21:47:31| #3

bertelbrander
bertelbrander (17.270 point)
Det er rimelig enkelt at kryptere data i en tekstfil, medmindre det er superhemmelige data.

Data i Windows registreringsdatabase ligger der fast, indtil du eller en anden sletter dem, det samme for filer.

Jeg tror umiddelbart at det er for bøvlet at bruge en service til at gemme data.

Skrevet tor. d. 26. maj 2011 kl. 21:54:47| #4

akilleuz
akilleuz (15.999 point)
Okay, så vil jeg nok prøve med en tekst fil. Sådan en kan man vel lave som man normalt gør i c++?

Kan man ikke lave nogle arrays  i DLL'en som indeholder de data man vil gemmen. For eksempel hvis jeg ved jeg skal gemme 10 værdier kan man så definere en form for globalt array [10] hvor data'erne ligger i? Så man slipper for txt filere?

Jeg ved nemlig altid størrelsen på de "memory blokke" der skal laves.

Skrevet tor. d. 26. maj 2011 kl. 22:47:53| #5

bertelbrander
bertelbrander (17.270 point)
Jeg tror at du bliver nødt til at forklare lidt mere præcist hvad du vil lave. Du kan godt gemme ting i et globalt array i DLL'en, men når DLL'en unloader forsvinder de.

Der er ikke forskel på at læse filer fra DLL'er og fra andre programmer.

Skrevet tir. d. 31. maj 2011 kl. 21:39:46| #6

akilleuz
akilleuz (15.999 point)
Nu har jeg gået og tænkt lidt over dit sidste indlæg, og fundet ud af at DLL'en er loadet hele tiden når mit simuleringsprogram kører, men bliver unloadet når programmet lukkes.

Og det jeg vil er at gemme data lokalt i DLL'en mens den er loadet. Der sker intet ved at data'erne forsvinder når DLL'en unloades.

Hvordan er det så mest hensægtsmessigt at gemme data lokalt i DLL'en er det globale variable eller er det et "fy" ord?

Skrevet tir. d. 31. maj 2011 kl. 21:48:30| #7

bertelbrander
bertelbrander (17.270 point)
Det kommer meget an på situationen og størrelsen på DLL'en. Hvis koden til DLL'en er "lille" og overskuelig er det letteste bare at gemme i globale variable.

Skrevet tir. d. 31. maj 2011 kl. 22:00:52| #8

akilleuz
akilleuz (15.999 point)
I første omgang bliver koden lille og overskuelig men jeg forudser det ændre sig på sigt.

Kan man lave andre DLL'er og gemme i eller vil dette også give problemer? Eller er jeg så tilbage til txt filer?

Jeg tror dit næste svar skal være et svar :) du har ihvertfald guidet mig i den rigtige retning!

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Updater Hybrid App

Oprettet den 18. april 2012 kl. 13.29
sir_madsen giver 100 point for svar | Giv et svar »

Ansi-c win32API - kan ikke oprette Richedit4.1 kontrol

Oprettet den 16. april 2012 kl. 22.13
cblcbl giver 60 point for svar | Giv et svar »

Iphone Objective C - Sætte image på et imageview.

Oprettet den 7. april 2012 kl. 11.36
lasserasch giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger