Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 4


|
Conversation : main et WinMain |
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
Salut,
Depuis un petit moment je fait un moteur 3D (en DLL), très simpliste (de toute façon je peux pas faire mieux ^^ ), pour me détendre. Pour ne pas dépendre de la SDL, SFML, wxWidgets ou autres pour le fenêtrage, je touche donc à la WinApi et à la Xlib.
Et j'arrive alors à un problème: comment faire pour garder le main portable? D'un côté je dois utiliser WinMain et de l'autre le main traditionnel.
J'ai essayé de me bricoler un truc: dans la version Win de mon moteur je met ceci
Code Cpp:#ifdef _WIN32 #include <windows.h> extern int main(int argc, char* argv[]); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { return main(__argc, __argv); } #endif
J'utilise alors dans les programme qui utilisent ma lib un main sous la forme main(int argc, char** argv)
Mais ça n'a pas l'air de marcher ...
merci pour votre aide.
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
blend:
Code Cpp:#ifdef _WIN32 #include <windows.h> extern int main(int argc, char* argv[]); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { return main(__argc, __argv); } #endif Gloups !  Il n'est pas possible d'avoir, dans le même exécutable, un main et un WinMain.
Code Cpp:#ifdef _WIN32 #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { return main(__argc, __argv); } #else extern int main(int argc, char* argv[]); #endif
Mais je ne suis même pas sûr que ça marche : à vérifier
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Passe par une class comme wx sinon
|
Itérer est humain, récurser est divin
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
@Xaviou:marche pô :'( Un aveu: ce truc, je l'avais trouvé dans le code source de la SFML ^^...
@xxlTux: Et comment je creé la classe? Je veux pas de macros foireuses ^^! @all: Je veux faire comme Qt fait ou même la SDL, la SFML etc: un main en main(int...) alors que derrière ils utilisent tous un WinMain sous Windows, et comme j'y connais rien ^^...
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Les macros c'est pour la lancer lol
|
Itérer est humain, récurser est divin
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
Justement: j'en veux pas XD
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Sinon tu fais une fonction _main qui est lancé par main ou WinMain et qui a tj le meme prototype
Dernière modification par xxltux (10-11-2007 18:40:05)
|
Itérer est humain, récurser est divin
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
C'est ce à quoi je pensais ^^... Mais j'ai un petit problème de defines
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Par contre met peut etre un nom plus en rapport avec ta lib, par ex malibMain
|
Itérer est humain, récurser est divin
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
Je vais voir un petit truc, si ça marche je n'aurais même plus besoin de me tracacer avec tout ça ^^ ---------- C'est bon, ça marche impec ^^: vive GetModuleHandle() !
Dernière modification par blend (10-11-2007 20:25:54)
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Heu si je me preocuperai quand meme de ce genre de truc lol En gros si tu as une fonction intermediaire, elle peux initialiser ta lib par exemple
|
Itérer est humain, récurser est divin
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
Ma lib' n'a aucunement besoin d'être initialisée
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Et tu la portes dans quel langage? lol
|
Itérer est humain, récurser est divin
|
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne |
Aucun ^^. J'ai eu un moment de délire ^^
|
Rien ne vaut la 2D pour éviter les problèmes de profondeur.
|
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
Un de tes nombreux moments de délire lol
|
Itérer est humain, récurser est divin
|
|