VC6 et options de compilation via pragma

[Résolu]
Signaler
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008
-
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008
-
re bonjour

quelles sont les options possibles avec pragma pour la compilation?
par exemple, pour ajouter une lib : pragma(lib,"lalib.lib")
mais pour un obj ?
et pour indiquer la compilation Single-Threaded ou Multithread ?

12 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
C'est clair, il utilise _beginthread du CRT (finit chez CreateThread() par force en interne), pour cela qu'il te faut libcmt.

Je lance, je clic 'quitter' et Windows m'affiche programme ne répond pas, j'éjecte par taskmanager. Résultat des courses: A REECRIRE.

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Mets un clic droit sur nom du projet, clic propriétés.

ciao...
BruNews, MVP VC++
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008

euh...oui... j'ai fait...mais après on fait quoi ?
ça m'indique pas le pragma pour ajouter un .obj au projet ou pour definir la compilation....
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
C'est LIB qu'on joint au projet.

ciao...
BruNews, MVP VC++
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008

il est possible de joindre un .obj (voir uFmod pour DevCpp et la source que j'ai posté utilisant uFmod precompilé).
Je le rajoute simplement à la liste des objets à linker. Mais pragma ne l'accepte pas

et ça ne repond toujours pas à ma question à propos des options de pragma ou des defines pour definir le mode de compilation (single threaded, multithreaded...)
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
#pragma la liste y est complète sur MSDN, suffit de regarder.
Single ou multi thread, les options se règlent dans les onglets de propriété du projet comme indiqué plus haut. Je ne me souviens pas lequel de VC6, ça remonte à trop longtemps mais en fouillant tu le trouves à tout coup.

Dans Petzold ou Richter ça doit être indiqué aussi:
http://brunews.com/brunews/download/CP5.zip
http://brunews.com/brunews/download/CP5Sources.zip



http://brunews.com/brunews/download/JR4.zip


http://brunews.com/brunews/download/JR4Sources.zip





ciao...
BruNews, MVP VC++
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008

ben tiens, pendant que j'y suis : quand on utilise Multithread en static, il faut lier la lib msvcrt.lib et/ou libcmt.lib ?
sous XP ça marche très bien, mais sous Windows 98, le programme compilé plante windows (erreur pagination). Ou alors il demande une dll (mais j'ai pas encore les details, je n'ai pas win98 pour tester) : je pense que c'est msvcr71.dll
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Normalement c'est libcmt mais c'est l'IDE (VC++) qui le fera pour toi quand tu auras coché l'option donc rien de spécial à spécifier en #pragma.
msvcr71.dll, tu n'es donc pas sur VC6 ?

ciao...
BruNews, MVP VC++
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008

si si, vc6
c'est un ami qui a le bug avec l'exe sur win98 : et il me dit qu'à un moment il lui demande une dll qu'il n'a pas (mais il ne m'a pas dit laquelle). Mais de toute façon, il plante lamentablement juste après.
par contre si je met seulement libcmt, il plante meme sous xp... erreur dans ntdll, memoire ne peut pas être "read"
faut-il compiler d'une certaine manière pour qu'un exe fonctionne sur win98 et xp ?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Sur VS 2005, il y a une option prise en charge Win98 mais du temps de VC6 c'était normal.

J'utilise direct l'API CreateThread() etc alors libcmt...

Va prendre depends.exe sur le net c'est gratuit, tu pourras ainsi regarder les dépendances de ton exe compilé.

ciao...
BruNews, MVP VC++
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008

il est lié a ntdll... mais c'est pas le seul, et les autres fonctionnaient très bien chez lui.

J'ai ce problème de Multithread avec ce programme
il ne semble pas utiliser CreateThread
je ne sais pas si c'est possible de le transformer (je debute à ce niveau)
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008

ben ouais, mais c'est pas le mien... j'ai déjà eu du mal à le trouver et à le faire adapter pour windows...