hvorfor kan jeg ikke loade flere funktioner fra min DLL

Tags:    c++

<< < 12 > >>
Hej Udviklere.

Jeg er igang med at "lege" med DLL filer men nu jeg har jeg et problem hvorfor virker

Her er min DLL kode:
Fold kodeboks ind/udKode 


og min DLL.h fil:
Fold kodeboks ind/udKode 


Og min Exe fil:
Fold kodeboks ind/udKode 


men jeg kan ikke få den til at skrive begge to ud



20 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Til Bertel: hvor arbjeder du så Microsoft?



Jeg ved ikke hvordan man laver mods til WoW.
Jeg ved ikke om det kan gøres i C++.



okay men ved du om man kan lave et program hvor der kommer en menu op i et spil hvor volumen kan skrues op og ned.
Jeg havde tænkt på at man åbner programme, så kommer der et vindue hvor der fx. står "åben Counter-Strike" så når spillet åbner ryger programmet ned i Tray linjen og så køre programmet i Counter-Strike :D



Indlæg senest redigeret d. 26.10.2006 20:56 af Bruger #10613
Det er ikke svært at lave et program som lægger sig i tray:
http://damb.dk/trayicon.php

Det er heller ikke svært at starte WoW fra et program, man kan f.ex. bruge system("...") eller ShellExecute(...)

Men jeg har ingen ide om hvordan man skruer op og ned for lyden i WoW



Hmm Bertel. Jeg synes nu at DLL'er (eller shared objects som de hedder under Unix) er en temmelig brugbar ting...specielt når éns programmer skal opnå en vis størrelse.
Man laver en ret lille eksekverbar fil og så indlæser man al funktionalitet som moduler.
Tag f.eks. en media afspiller. Hvert codec er sandsynligvis et plugin (dll, .so, whatever) til applikationen. Forskellige visualiserings rutiner kan være plugins. Hver playlist format kan være plugins.
På den måde slipper man for at lægge al koden ind i sin exe fil.

Personligt bruger jeg denne opsplitning hele tiden.



Dll'er (/so'er) er en handy feature til at lave extensions/plugins til programmer uden at skulle ændre på moder programmet og til at dele kode mellem flere programmer.

Jeg har næsten aldrig brug for disse features, og undlader derfor at bruge dll'er.

Det er mit indtryk at Kasper er nybegynder, og jeg mener derfor at der er andre aspekter af programmering der er vigtige at lære.



Det er mit indtryk at Kasper er nybegynder, og jeg mener derfor at der er andre aspekter af programmering der er vigtige at lære.


Der er vi helt enige. Man kan let komme ud i noget "snask". Specielt når man igen skal unloade sin DLL/SO, for så må man ikke længere bruge funktionaliteten.

Der kan det være godt at have to funktioner i sin DLL. Én som registrerer funktioner fra DLL'en i moder programmet og som køres lige efter at DLL'en er indlæst, og en funktion som rydder op igen og afregistrerer funktioner fra DLL'en og som udføres lige før DLL'en unloades.

De to funktioner kan meget vel være i DLL'en, for den ved bedst selv, hvad den indeholder, og hvad den vil gøre. Om den vil registrere understøttelse for et nyt fil format eller en ny netværks protokol.
Så giver man en reference til et objekt hvorfra man kan nå ud i alle udkanter af applikationen med som parameter til de to funktioner.

Sådan plejer jeg i hvert fald at gøre og det lader til at virke fortrinneligt.



men kan i hjælpe mig selv om jeg er nybegynder fordi jeg vil meget gerne lære det altså jeg har jo lavet et hvor den skriv hello world gennem en DLL.
jeg vil meget meget gerne kunne bruge DLL filer ordenligt :)



Prøv følgende:

main.cpp
Fold kodeboks ind/udKode 


dll.cpp:
Fold kodeboks ind/udKode 


Jeg har hverken compilet eller afprøvet men fjernet de ting jeg så som problemer i din kode.



Indlæg senest redigeret d. 03.11.2006 07:20 af Bruger #2695
Den har jeg prøvet hehe jeg vil gerne lære noget andet :)
Fx. en windows Hook i en DLL :)

eller hvad jeg ellers kunne :)



<< < 12 > >>
t