IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

execution d'un prog 32 bits sous Windows 64 bits


Sujet :

Visual C++

  1. #1
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut execution d'un prog 32 bits sous Windows 64 bits
    Bonjour

    Je suis sous Windows 7 64 bits.
    Je suis confront� � un probl�me tr�s curieux :
    D'abord j'ai �crit un ex� avec les MFC compil� en win32. Il fonctionne parfaitement.
    J'ai �cris une dll 64 bits qui permet d'ajouter une ligne dans un menu contextuel de fichier dans l'explorer.
    Cette dll fonctionne bien si je clique sur la ligne et que j'affiche par exemple le nom du fichier s�lectionn�.
    Par contre, lorsque je clique, si je veux ex�cuter � l'aide de createprocess l'ex� susdit, j'obtiens l'erreur "998. L'acc�s � cet emplacement m�moire n'est pas valide'.
    Il semble que le syst�me ne puisse pas charger l'ex� alors que �a fonctionne bien lorsque je fais un double click dessus.

    Autre chose curieuse : si je le lance avec Windbg il s'arr�te avec ces lignes :
    0:000> g
    ModLoad: 00000000`76f80000 00000000`7709f000 WOW64_IMAGE_SECTION
    ModLoad: 00000000`76120000 00000000`76230000 WOW64_IMAGE_SECTION
    ModLoad: 00000000`76f80000 00000000`7709f000 NOT_AN_IMAGE
    ModLoad: 00000000`77560000 00000000`7765a000 NOT_AN_IMAGE
    ModLoad: 00000000`76120000 00000000`76230000 C:\Windows\syswow64\kernel32.dll
    ModLoad: 00000000`762d0000 00000000`76316000 C:\Windows\syswow64\KERNELBASE.dll
    ModLoad: 00000000`769d0000 00000000`76ad0000 C:\Windows\syswow64\USER32.dll
    ModLoad: 00000000`750a0000 00000000`75130000 C:\Windows\syswow64\GDI32.dll
    ModLoad: 00000000`76840000 00000000`7684a000 C:\Windows\syswow64\LPK.dll
    ModLoad: 00000000`76930000 00000000`769cd000 C:\Windows\syswow64\USP10.dll
    ModLoad: 00000000`763b0000 00000000`7645c000 C:\Windows\syswow64\msvcrt.dll
    ModLoad: 00000000`76ad0000 00000000`76b70000 C:\Windows\syswow64\ADVAPI32.dll
    ModLoad: 00000000`76460000 00000000`76479000 C:\Windows\SysWOW64\sechost.dll
    ModLoad: 00000000`76750000 00000000`76840000 C:\Windows\syswow64\RPCRT4.dll
    ModLoad: 00000000`74f20000 00000000`74f80000 C:\Windows\syswow64\SspiCli.dll
    ModLoad: 00000000`74f10000 00000000`74f1c000 C:\Windows\syswow64\CRYPTBASE.dll
    ModLoad: 00000000`73860000 00000000`73865000 C:\Windows\SysWOW64\MSIMG32.dll
    ModLoad: 00000000`76320000 00000000`7639b000 C:\Windows\syswow64\COMDLG32.dll
    ModLoad: 00000000`76270000 00000000`762c7000 C:\Windows\syswow64\SHLWAPI.dll
    ModLoad: 00000000`71070000 00000000`7120e000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll
    ModLoad: 00000000`75410000 00000000`7605a000 C:\Windows\syswow64\SHELL32.dll
    ModLoad: 00000000`72b30000 00000000`72b81000 C:\Windows\SysWOW64\WINSPOOL.DRV
    ModLoad: 00000000`76d60000 00000000`76ebc000 C:\Windows\syswow64\ole32.dll
    ModLoad: 00000000`76ec0000 00000000`76f4f000 C:\Windows\syswow64\OLEAUT32.dll
    ModLoad: 00000000`737e0000 00000000`737fc000 C:\Windows\SysWOW64\oledlg.dll
    ModLoad: 00000000`71230000 00000000`713c0000 C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80\gdiplus.dll
    ModLoad: 00000000`713c0000 00000000`713fc000 C:\Windows\SysWOW64\OLEACC.dll
    ModLoad: 00000000`751a0000 00000000`75200000 C:\Windows\syswow64\IMM32.dll
    ModLoad: 00000000`76850000 00000000`7691c000 C:\Windows\syswow64\MSCTF.dll
    ModLoad: 00000000`73820000 00000000`73852000 C:\Windows\SysWOW64\WINMM.dll
    (2028.1cf4): WOW64 breakpoint - code 4000001f (first chance)
    First chance exceptions are reported before any exception handling.
    This exception may be expected and handled.
    ntdll32!LdrpDoDebuggerBreak+0x2c:
    778e0fab cc int 3
    Si vous avez une explication je suis preneur.
    Merci

    PS Ce probl�me semble �tre en rapport avec ceci mais j'avoue que je ne comprends pas tout
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Je pense que vous avez tout simplement un bug dans votre programme.

    Les traces ne montrent que le fait que le programme a atteint un point d'arr�t (cc int 3).

    Vous pouvez utiliser un d�buggeur comme VS m�me avec les extension shell, non ?

  3. #3
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    J'ai surement un bug, mais o� ?
    Le debugueur VS ne trouve rien, et en mode direct (avec l'explorateur Windows) , si je faiss un double click sur l'ex� tout fonctionne bien !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  4. #4
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Je viens d'essayer un faisant un programme Windows Form et l� pas de probl�me !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  5. #5
    Membre Expert
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2011
    Messages
    1 255
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 1 255
    Par d�faut
    Si je comprends bien, tu as cr�� un Shell Extension 64bit et dans cette DLL tu fais un CreateProcess d'un exe 32bit. C'est �a ?

    C'est impossible de charger une DLL 32bit dans un exe 64bit et vis versa. Mais l�, c'est bizarre que ton exe 64bit (l'explorateur) ne puisse pas lancer un exe 32bit. Il me semble que Notepad++ est 32bit et on n'a pas de souci pour le lancer sous 7 x64.

    Peux-tu essayer autre chose que CreateProcess ? Style ShellExecute ou _spawnl ?

  6. #6
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Si je comprends bien, tu as cr�� un Shell Extension 64bit et dans cette DLL tu fais un CreateProcess d'un exe 32bit. C'est �a ?
    Oui, c'est �a, je suis sous Windows 7 64 bits.

    Avec ShellExecute il me dit que le fichier est introuvable !
    _spawnl pas essay�

    Je r�sule les probl�me :
    exe compile 32 bits :
    • aucun probl�me avec double click dans l'explorateur
    • aucun probl�me en debug avec VS2010
    • ne se lance pas avec Windbg
    • ne se lance pas avec la dll Extension Shell


    exe compile 64 bits :
    • aucun probl�me avec double click dans l'explorateur
    • aucun probl�me en debug avec VS2010
    • se lance avec Windbg
    • ne se lance pas avec la dll Extension Shell


    J'ai forc�ment un bug quelque part ???

    j'ai lu que les MFC avaient des probl�mes, est-ce vrai ou est-ce une l�gende urbaine ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  7. #7
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    On va reprendre depuis le d�but.

    Mettez-vous en situation de plantage mais avec un AutoDumpPlus attach� � votre explorateur.

    Les Dump devraient indiquer la source du probl�me.

  8. #8
    Membre Expert
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2011
    Messages
    1 255
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 1 255
    Par d�faut
    Je ne sais pas si ca peut aider, mais notepad++ se lance bien via CreateProcess :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = iShowCmd;    //SW_RESTORE;
    if (!CreateProcess (NULL, pszCommand, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
        DWORD errorCode = GetLastError();
        if (errorCode == ERROR_ELEVATION_REQUIRED) {    //Fallback to shellexecute
            CoInitializeEx(NULL, 0);
            HINSTANCE execVal = ShellExecute(NULL, TEXT("runas"), pszCommand, NULL, NULL, iShowCmd);
            CoUninitialize();
            if (execVal <= (HINSTANCE)32) {
                // affichage erreur
            }
        } else {
            // affichage erreur
        }
    }

  9. #9
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Ne louvoyez pas, prenez le probl�me de front, g�n�rez les dumps.

  10. #10
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Merci du consiel, je rentre et je m'y mets
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  11. #11
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Avec adplus j'obtiens un code d'exception 0x80000007.
    Citation Envoy� par MSDN
    The system debugger was awakened by an interrupt.
    Sympa, merci
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  12. #12
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503

  13. #13
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    R�solu, mais il reste des myst�res.
    Dans ma dll, je faisais afficher avec des messages box le nom de l'ex� et les arguments de lancements et c'est �a qui faisait planter la dll.
    Je ne fais plus rien afficher et maintenat �a fonctionne bien.
    Au moins j'aurais appris � me servir de d�buggueur autres que celui de Visual C.

    (Les myst�res, c'est que �a fonctionnait avec le prog Windows Form).

    Merci de votre aide
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  14. #14
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Vos probl�mes semblent li�s au moment du chargement d'une Dll.
    Avec votre indice suppl�mentaire, il semble que c'et une Dll graphique.

  15. #15
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Je lance une simple bo�te de dialogue !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  16. #16
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Rien n'est vraiment simple.
    Qui dit boite de Dialogue dit ressources, dit composant d'affichage, hook de fen�tre etc...

  17. #17
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Oui tout � fait.
    Simplement, il faut que je pr�cise (car j'ai l'impression que je me suis mal expliqu� dans un post pr�c�dent), qu'avant de lancer mon ex�cutable (celui qui avait donc un probl�me) par ShellExecute (ou CreateProcess), j'affichais le chemin de cet ex�cutable et l'argument pass� dans 2 boites de dialogue. C'est depuis que j'ai supprim� cet affichage que tout fonctionne parfaitement.
    Maintenant que ce probl�me est r�solu je crois avoir lu, dans une vie int�rieure, qu'il fallait �viter justement les boites de dialogue dans les menus contextuels, ce qui semble se confirmer, mais peut-�tre que je me trompe.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 7
    Dernier message: 08/07/2014, 16h02
  2. Compiler le plug-in Oracle 64 bit sous Windows 64 bit avec Qt 4.3
    Par mercure07 dans le forum Bases de donn�es
    R�ponses: 0
    Dernier message: 23/01/2014, 10h17
  3. R�ponses: 2
    Dernier message: 23/07/2013, 23h41
  4. CF10 32 bits sous Windows 64 bits ?
    Par PoY dans le forum Coldfusion
    R�ponses: 1
    Dernier message: 29/10/2012, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo