Macros Problemer i Static Library

Tags:    c++

<< < 123 > >>
Jeg håber før nogen som helst poster noget

så skal de kende til Static Library og

Macros med c++

* Med Macros mener jeg: #define *



jeg har lavet min egen "Static Library " som

hedder 'Love' alt virker fint.


jeg har 'Love.h' og 'Love.lib'

når jeg skriver '#define Newmain main'

i min 'Love.lib' og gemmer.


og sener når jeg siger: #include "Love.h" i

min main.cpp og dermed skiver 'Newmain' som

er 'main' så virker det ikke.


er der en måde at bruge #define via static

Library og ikke header? :(










Indlæg senest redigeret d. 08.06.2010 18:25 af Bruger #15938
21 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Makroer (#define) virker når koden bliver oversat. Så den har betydning når du oversætter biblioteket.

Så jeg tror ikke du kan det du vil. Men jeg er ikke sikker på at jeg helt forstår hvad det er du vil...





#define Newmain main

virker hvis jeg læser den fra normalt header file

men hvis det fra min egen library så gøre den ikke

den vil ikke kunne genkende den

tænkt på om der findes en måde at gøre det muligt

at #define virker også via min egen library :/

eller en anden måde at skifte main navn til noget

andet og gem det i min library så jeg kan bruge det...



Indlæg senest redigeret d. 08.06.2010 21:57 af Bruger #15938
Når du oversætter kode til et bibliotek/library evalueres alle #define (makroer) og de "virker". Jeg går ud fra at du inkluderer header filen, når du oversætter biblioteket?

De evalueres ikke igen når du oversætter noget andet kode (din main). Et bibliotek har normalt ikke en main.

Jeg forstår stadig ikke helt hvad det er du vil opnå. Måske skulle du prøve at forklare helt tydeligt hvad det er du vil, med et simpelt eksempel.



Jeg vil gerne skifte main function navn til noget andet som foreksempel : Newmain og gemme det i et " bibliotek " så kan jeg bruge "Newmain()" isted for " main()"

jeg har prøvet at sige #define Newmain main

men den virker ikke hvis det er gemt i et

bibliotek/library.

er der ikke andet måde man kan gøre??





Indlæg senest redigeret d. 09.06.2010 00:07 af Bruger #15938
Vil du have din "main" funktion (der så måske skal hedde NewMain) til at være i biblioteket?

Eller skal din "main" funktion (hvad den så end skal hedde) til at være i dit hovedprogram, dvs. uden for biblioteket?

Nogle kompilere har en feature der gør at man selv kan bestemme hvad "entry" funktionen skal hedde, det er normalt main, men i Windows applikationer bruger man oftest WinMain men du kan selv bestemme hvad den skal hedde. Hvilken compiler bruger du?

Jeg har stadig svært ved at se formålet...



Dobbelt post



Indlæg senest redigeret d. 09.06.2010 00:23 af Bruger #4996
Vil du have din "main" funktion (der så måske skal hedde NewMain) til at være i biblioteket?


Det præcis det....

Min "main" funktion Skal være i biblioteket Og skal hedde

"NewMain" og ikke andet

uden at skifte noget med compileren...

Og jeg bruger Microsoft Visual C++ 2008

jeg kan se du kender meget til c++ og virker som expert i det


Grunden til jeg vil gerne have "main" funktion

til at hedde "NewMain".

Altså isted for Main() så NewMain() og gemt i

min biblioteket.

så jeg altid kan linke til biblioteket og

have min egen api for main() ... som skal være

NewMain()



Indlæg senest redigeret d. 09.06.2010 16:21 af Bruger #15938
Du kan ikke ændre navne på funktioner i et static bibliotek, efter det er oversat (det kan du heller ikke i dll'er eller programmer i øvrigt). Som jeg forstår det er det det du er ude efter.

Du kan ændre på hvilken funktion compileren ser som "main" ved at bruge Visual C++'s /entry switch:
http://msdn.microsoft.com/en-us/library/f9t8842e(VS.80).aspx

Men det vil jeg selv mene er mere end almindelig grimt.

Der burde ikke være noget i vejen for at have din normale main i det static bibliotek, og lade den main kalde NewMain. Men så er vi tilbage til at jeg stadig ikke forstår hvad problemet er...



Men jeg har set andre gøre...?

hvis du kigger på DARK GDK..

http://www.thegamecreators.com/?m=view_product&id=2128

så bruger de

void DarkGDK ( void )

i starten.. det ,d et jeg prøver at lave



Indlæg senest redigeret d. 09.06.2010 20:47 af Bruger #15938
På et eller andet tidspunkt bliver du nok nødt til at fortælle mig hvad det er du vil, og hvad det er du ønsker at opnå, så præcist at selv jeg fatter det.

Det her med at gætte sig frem til hvad det er du vil, hvordan du vil opnå det og hvilke problemer det giver, er for længst blevet træls.



<< < 123 > >>
t