VC6 et options de compilation via pragma

Résolu
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008 - 14 avril 2007 à 19:56
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008 - 15 avril 2007 à 20:50
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 avril 2007 à 20:42
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++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 avril 2007 à 20:08
Mets un clic droit sur nom du projet, clic propriétés.

ciao...
BruNews, MVP VC++
0
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008
14 avril 2007 à 20:17
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....
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 avril 2007 à 21:16
C'est LIB qu'on joint au projet.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008
14 avril 2007 à 23:53
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...)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 avril 2007 à 00:33
#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++
0
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008
15 avril 2007 à 01:23
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 avril 2007 à 09:08
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++
0
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008
15 avril 2007 à 17:58
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 ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 avril 2007 à 19:31
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++
0
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008
15 avril 2007 à 20:08
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)
0
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008
15 avril 2007 à 20:50
ben ouais, mais c'est pas le mien... j'ai déjà eu du mal à le trouver et à le faire adapter pour windows... 
0
Rejoignez-nous