begin process at 2012 05 25 04:20:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Général

 > 

Generer un manifest pour utiliser la msvcrt.dll avec masm


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Generer un manifest pour utiliser la msvcrt.dll avec masm

dimanche 7 octobre 2007 à 18:20:50 | Generer un manifest pour utiliser la msvcrt.dll avec masm

ToutEnMasm

Bonjour,
Pour pouvoir utiliser directx 9 avec masm,j'ai lié la msvcrt.lib a mon projet.Celle ci permet d'utiliser la CRT run time,directx en a besoin pour fonctionner.L'ennui est qu'il est obligatoire d'ajouter un manifest au source , faute de quoi on obtient divers messages d'erreurs concernant la "mspdb80.dll".
Il y a vraiment peu de documentation la dessus concernant masm.
[ Lien ]
Le plus souvent il s'agit du c++,  quelqu'un pourrait-il m'éclairer ?????????
mardi 9 octobre 2007 à 13:36:59 | Re : Generer un manifest pour utiliser la msvcrt.dll avec masm

BruNews

Administrateur CodeS-SourceS
DirectX n'a aucun besoin de CRT au niveau de ton prog, il est de loin préférable que ton prog ne soit pas lié directement à une msvcrtxxx.dll, de ce fait aucun besoin non plus de manifest.

Je t'ai fait un exemple minimal:
http://brunews.com/Device.zip
C'est un exemple du SDK DX que j'ai remodelé sans CRT.
Attention aux directories du sdk que j'ai mises dans mon proj, je n'ai pas installé le sdk, juste décompressé dans un dossier et je le virerai sous peu (c'est pas mon taf le DX...). Si tu veux recompiler, faudra adapter les directories d'include et lib.

ciao...
BruNews, MVP VC++
mardi 9 octobre 2007 à 15:07:29 | Re : Generer un manifest pour utiliser la msvcrt.dll avec masm

ToutEnMasm

Salut,
Sympa pour l'exemple en c.
Ma machine me dit "Direct3DCreate9Ex cannot be found in d3d9.dll"
La porte d'entrée sur directx reste fermée !.
J'ai le dernier SDK directx sur ma machine et le dernier Directx9_0C dans mon systeme.
Il y aurait il une version plus récente ?.Peut être la dix ?.
Dans d3d9.h,je ne trouve que Direct3DCreate9.

A part ça,la réponse est juste mais incomplète pour masm.
On a deux solutions:
****** Soit lié avec libcmt.lib,et ça le c le fait sans prévenir.
Dans ce cas avec masm il faut fournir l'entrée main.
****** deuxieme solution:
Se lié a la msvcrt.lib et la il faut un manifest, pas de e içi,le fichier doit avoir l'extension .manifest pour être reconnu comme tel par mt.exe.

M'enfin,tout ça c'est pour dire que je suis franchement @è$$*= avec le troisiéme exemple du tutorial directx(traduit fidèlement en masm) , il fait tourner un triangle (en c++).
En masm,j'en arrive au point ou :
La traduction faite a partir du fichier de désassemblage du c++,n'a aucuin bug (windbg)
Le D3DSpy.exe fournit avec le sdk me dit que tout fonctionne et est ok.
J'ai testé mon appli avec les deux types de liens.
et ................. le triangle ne tourne pas !!!!!!!!
Qui peut m'apporter ne serait-ce qu'une piste?
                     merci mour la réponse
mardi 9 octobre 2007 à 15:25:50 | Re : Generer un manifest pour utiliser la msvcrt.dll avec masm

BruNews

Administrateur CodeS-SourceS
D3D9.DLL j'ai version 6.0.6000.16386 fournie avec Vista.

J'ai décompressé le sdk DX de Juin 2007.
Il y en a un de aout ici:
[ Lien ]
mais ça ne devrait pas changer grand chose.

ciao...
BruNews, MVP VC++
mardi 9 octobre 2007 à 15:39:30 | Re : Generer un manifest pour utiliser la msvcrt.dll avec masm

BruNews

Administrateur CodeS-SourceS

Je ne comprends pas "...fournir l'entrée main"

.586
.model flat, stdcall
option casemap :none
option prologue:none
option epilogue:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\kernel32.lib

.code
   ALIGN 4
start:
   push     0
   call     GetModuleHandle
   mov      hinst, eax
  
progEnd:
   push     0
   call     ExitProcess

end start

et je compile avec un bat de ce genre:
SET fOut=%~dp0%~n0.
SET myDir=%~dp0
if exist %myDir%*.obj del %myDir%*.obj
if exist %myDir%*.exe del %myDir%*.exe
if exist %myDir%*.res del %myDir%*.res

path %~d0\Masm32\BIN7
if not exist %fOut%rc goto noResource
Rc.exe /v %fOut%rc
cvtres.exe /nologo /machine:ix86 /out:%myDir%Rsrc.obj %fOut%res
:noResource
Ml.exe /c /coff /nologo %fOut%asm
Link.exe /nologo /SUBSYSTEM:WINDOWS /out:%fOut%exe %myDir%*.obj
if not errorlevel 1 goto exitbat
:erratum
pause
:exitbat
if exist %myDir%*.obj del %myDir%*.obj
if exist %myDir%*.res del %myDir%*.res

ciao...
BruNews, MVP VC++

mardi 9 octobre 2007 à 16:00:20 | Re : Generer un manifest pour utiliser la msvcrt.dll avec masm

ToutEnMasm


Pour l'entrée main,il s'agit d'un message d'erreur du lieur lorsqu'on introduit la librairie libcmt.lib.
Traditionellement avec masm,on utilise
start:
end start
Pour définir la zone de code,avec libcmt.lib c'est "main:     end main",et là le lieur est content.
Je vais télécharger la mise à jour de directx et voir si ......



mardi 9 octobre 2007 à 16:12:13 | Re : Generer un manifest pour utiliser la msvcrt.dll avec masm

ToutEnMasm

Re,
Pour la mise a jour,elle me dit "rien a faire",je suis a jour.
Par contre , j'ai XP au lie de vista.Le problème doit venir de là.
Pour info,suit le batch que j'utilise pour compiler,il est à la mode du c++ 8 express et utilise son envirronnement; j'incorpore le .manifest en compilant la ressource.
---------------------------------------------------------------------------------
call "vcvars32.bat"
rem CMD

SET ML=/c /coff /Zp4 /Zi /Zd
SET PROG=matrices

rc /v /fo %PROG%.exe.embed.manifest.res %PROG%.rc
cvtres /MACHINE:IX86 /OUT:%PROG%.bin %PROG%.exe.embed.manifest.res
REM /DEBUG /PDB:%PROG%.pdb /Zi /Zd
ml /FR[%PROG%.sbr] %PROG%.asm
Link /SUBSYSTEM:WINDOWS /INCREMENTAL /DEBUG /PDB:%PROG%.pdb /MANIFEST /MANIFESTFILE:%PROG%.exe.intermediate.manifest  %PROG%.obj %PROG%.bin 
mt.exe /verbose /out:%PROG%.exe.embed.manifest /notify_update /manifest %PROG%.exe.intermediate.manifest
pause

--------------------------------------------------------------------------------



Cette discussion est classée dans : dll, utiliser, manifest, msvcrt, masm


Répondre à ce message

Sujets en rapport avec ce message

Utiliser masm et le VC++ [ par ToutEnMasm ] Le sujet revient fréquemment dans ce forum et mérite un peu de documentation fort bien faite.On peut utiliser toutes les possibilités (macros,invoke . Converssion Masm / Tasm [ par vulpes87 ] BonjourJ'essait de convertire un fichier Masm pour Tasm  Ce que j'ai en Masm:;--- OLEDragConstants, Type=ENUM, GUID={D8898460-742F-11CF-8AEA-00AA00C00 tri MASM classement [ par link25000 ] bonjour a tous,voila j'ai un petit projet a fair et je suis perdu ;problemefaire une liste de noms et un autre de notes , et  fouruir en sortie deux c DLL Load Comment ? [ par belette321 ] Je me demandais comment je fait pour charger un DLL. Il parrait que sa prend pas plus que quelque ligne alor merci d'avence ... Traduction MASM > FASM [ par ianis24 ] Bonjour, J'ai commencer l'assembleur depuis un petit moment ( j'apprends lentement). J'utilise le compilateur FASM. Malheureusement pour moi beaucoup comment utiliser la carte r4i [ par hanhan007 ] je possede une carte r4i, mais je ne sait pas comment utiliser, quelqu'un peut m'aider ? on me propose les sites suivantes : www.accessoire-ds.fr www. GetProcAddress d'une procédure dans une Dll [ par biloute54 ] bonjour, j'essaie d'appeler une procédure dans une DLL, mais GetProcAddress me retourne 0 [u]programme principal :[/u] [code=autre] dll DWORD ? fnc Quel(s) outil(s) utiliser pour débuter assembleur PC ? ... [ par zutix ] Bonjour, Je voudrais débuter en assembleur pour une utilisation sur PC (style netbook encore sous Windows XP et ensuite sur PC plus récent) Pourriez Probleme de dll! (arguments...) [ par BlackWizzard ] salut les pro!voila, G une fonction contenu dans une dll mais cette fonction, je ne sait pas comment lui ajouter des arguments...voici un extrait du c [URGENT] Passer des arguments a une DLL [ par BlackWizzard ] Bonjours, je voudrai creer un dll en asm (ce qui est fait) mais je n'arrive pas a passer des arguments a la seul fonction de cette dll.imaginons le co


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales