VC6 et options de compilation via pragma [Résolu]

cs_bbear 92 Messages postés jeudi 24 novembre 2005Date d'inscription 29 mai 2008 Dernière intervention - 14 avril 2007 à 19:56 - Dernière réponse : cs_bbear 92 Messages postés jeudi 24 novembre 2005Date d'inscription 29 mai 2008 Dernière intervention
- 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 ?
Afficher la suite 

12 réponses

Répondre au sujet
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 15 avril 2007 à 20:42
+3
Utile
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++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BruNews
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 14 avril 2007 à 20:08
0
Utile
Mets un clic droit sur nom du projet, clic propriétés.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
cs_bbear 92 Messages postés jeudi 24 novembre 2005Date d'inscription 29 mai 2008 Dernière intervention - 14 avril 2007 à 20:17
0
Utile
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....
Commenter la réponse de cs_bbear
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 14 avril 2007 à 21:16
0
Utile
C'est LIB qu'on joint au projet.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
cs_bbear 92 Messages postés jeudi 24 novembre 2005Date d'inscription 29 mai 2008 Dernière intervention - 14 avril 2007 à 23:53
0
Utile
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...)
Commenter la réponse de cs_bbear
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 15 avril 2007 à 00:33
0
Utile
#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++
Commenter la réponse de BruNews
cs_bbear 92 Messages postés jeudi 24 novembre 2005Date d'inscription 29 mai 2008 Dernière intervention - 15 avril 2007 à 01:23
0
Utile
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
Commenter la réponse de cs_bbear
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 15 avril 2007 à 09:08
0
Utile
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++
Commenter la réponse de BruNews
cs_bbear 92 Messages postés jeudi 24 novembre 2005Date d'inscription 29 mai 2008 Dernière intervention - 15 avril 2007 à 17:58
0
Utile
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 ?
Commenter la réponse de cs_bbear
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 15 avril 2007 à 19:31
0
Utile
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++
Commenter la réponse de BruNews
cs_bbear 92 Messages postés jeudi 24 novembre 2005Date d'inscription 29 mai 2008 Dernière intervention - 15 avril 2007 à 20:08
0
Utile
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)
Commenter la réponse de cs_bbear
cs_bbear 92 Messages postés jeudi 24 novembre 2005Date d'inscription 29 mai 2008 Dernière intervention - 15 avril 2007 à 20:50
0
Utile
ben ouais, mais c'est pas le mien... j'ai déjà eu du mal à le trouver et à le faire adapter pour windows... 
Commenter la réponse de cs_bbear

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.