<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Patrice Lamarche - 64 bits</title>
    <link>http://patricelamarche.net/</link>
    <description>Ce blog est moche. Je ne suis pas designer.</description>
    <language>fr-fr</language>
    <copyright>Patrice Lamarche</copyright>
    <lastBuildDate>Tue, 11 May 2010 11:53:04 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>patrice.lamarche@gmail.com</managingEditor>
    <webMaster>patrice.lamarche@gmail.com</webMaster>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=b13aeb47-bd48-4c1b-aab2-6845b788adca</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,b13aeb47-bd48-4c1b-aab2-6845b788adca.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,b13aeb47-bd48-4c1b-aab2-6845b788adca.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b13aeb47-bd48-4c1b-aab2-6845b788adca</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/Lgerschangementsautourdu64bitsetdeVisual_C331/image_2.png">
            <img style="border-right-width: 0px; margin: 0px 5px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Lgerschangementsautourdu64bitsetdeVisual_C331/image_thumb.png" width="184" height="244" />
          </a> C’est
en lisant le premier chapitre <a href="http://www.amazon.fr/gp/product/0735627045?ie=UTF8&amp;tag=blogdepatrlam-21&amp;linkCode=as2&amp;camp=1642&amp;creative=19458&amp;creativeASIN=0735627045">de
la 3ème édition de CLR via C#</a><img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.fr/e/ir?t=blogdepatrlam-21&amp;l=as2&amp;o=8&amp;a=0735627045" width="1" height="1" /> de
Jeffrey Richter que m’est revenu cette information qui a son importance lorsque l’on
souhaite le pourquoi du comment à propos du support du 64 bits.
</p>
        <p align="justify">
Jeffrey Richter indique à juste titre que le compilateur C# compile par défaut les
assemblies en AnyCPU afin que celles-ci soient portables et compilées en 32 ou 64
bits par le compilateur JIT en fonction de la plate-forme sur laquelle on souhaite
exécuter l’application. Ceci est vrai, mais on pourrait penser que donc Visual Studio
compile également par défaut vos assemblies en AnyCPU. 
</p>
        <p align="justify">
Et cela était effectivement le cas avec les précédentes versions de Visual Studio,
mais il y a eu un changement de politique avec Visual Studio 2010 qui a eu lieu assez
récemment il me semble (probablement à partir de la RC).
</p>
        <p align="justify">
          <strong>Avec la dernière version de l’ide, les projets qui sont généralement des points
d’entrées applicatifs (les types de projets relatifs au GUI clients) sont par défaut
compilés en x86.</strong> Ainsi si vous créez un projet Windows Forms, un projet WPF
ou une application Console vous pouvez constater que l’AnyCPU qui faisait loi jusqu’à
présent à laisser place à une configuration en x86. Les projets ASP.net et les bibliothèques
de classes ne sont pas concernés et restent par défaut en AnyCPU.
</p>
        <h2 align="justify">Pourquoi ce changement alors que l’AnyCPU permet d’avoir des assemblys
multi-plateforme et donc portables ?
</h2>
        <p align="justify">
Tout simplement, parce que les développeurs ne font pas assez souvent de tests de
leurs applicatifs sur des environnements 32 bits <em><strong>ET</strong></em> 64 bits.
Si vous développez dans un environnement 32 bits, et que vous ne testez pas votre
application 64 bits vous <a href="http://patricelamarche.net/2009/02/26/AttentionAuxD%c3%a9pendancesDynamiquesPourLeSupportDu64Bits.aspx">risquez
d’avoir des problèmes si vous référencez des composants 32 bits</a>. En effet, votre
point d’entrée étant en AnyCPU votre application sera compilée en 64 bits et sera
donc incapables de charger des composants 32 bits.
</p>
        <p align="justify">
Modifier le paramétrage par défaut afin de compiler en x86 les projets de types GUI
clients permet d’avoir des applications qui fonctionneront dans tous les cas puisque
elles seront (par défaut) exécutées en 32 bits même sur un OS 64 bits. Vous êtes toujours
libre de changer cette configuration vers un compilation en AnyCPU mais prenez bien
garde à vos dépendances.
</p>
        <p align="justify">
Quand aux projets ASP.net, ceux-ci concernent des applications serveurs qui ont potentiellement
bien moins de chance d’avoir des dépendances vers des composants 32 bits, et les bibliothèque
de classes restent en AnyCPU afin de garder leur portabilité, le point d’entrée de
votre application étant l’élément clé indiquant si le process doit être en 32 ou 64
bits.
</p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=b13aeb47-bd48-4c1b-aab2-6845b788adca" />
      </body>
      <title>Légers changements autour du 64 bits et de Visual Studio 2010</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,b13aeb47-bd48-4c1b-aab2-6845b788adca.aspx</guid>
      <link>http://patricelamarche.net/2010/05/11/L%c3%a9gersChangementsAutourDu64BitsEtDeVisualStudio2010.aspx</link>
      <pubDate>Tue, 11 May 2010 11:53:04 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/Lgerschangementsautourdu64bitsetdeVisual_C331/image_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 5px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Lgerschangementsautourdu64bitsetdeVisual_C331/image_thumb.png" width="184" height="244" /&gt;&lt;/a&gt; C’est
en lisant le premier chapitre &lt;a href="http://www.amazon.fr/gp/product/0735627045?ie=UTF8&amp;amp;tag=blogdepatrlam-21&amp;amp;linkCode=as2&amp;amp;camp=1642&amp;amp;creative=19458&amp;amp;creativeASIN=0735627045"&gt;de
la 3ème édition de CLR via C#&lt;/a&gt;&lt;img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.fr/e/ir?t=blogdepatrlam-21&amp;amp;l=as2&amp;amp;o=8&amp;amp;a=0735627045" width="1" height="1" /&gt; de
Jeffrey Richter que m’est revenu cette information qui a son importance lorsque l’on
souhaite le pourquoi du comment à propos du support du 64 bits.
&lt;/p&gt;
&lt;p align="justify"&gt;
Jeffrey Richter indique à juste titre que le compilateur C# compile par défaut les
assemblies en AnyCPU afin que celles-ci soient portables et compilées en 32 ou 64
bits par le compilateur JIT en fonction de la plate-forme sur laquelle on souhaite
exécuter l’application. Ceci est vrai, mais on pourrait penser que donc Visual Studio
compile également par défaut vos assemblies en AnyCPU. 
&lt;/p&gt;
&lt;p align="justify"&gt;
Et cela était effectivement le cas avec les précédentes versions de Visual Studio,
mais il y a eu un changement de politique avec Visual Studio 2010 qui a eu lieu assez
récemment il me semble (probablement à partir de la RC).
&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;strong&gt;Avec la dernière version de l’ide, les projets qui sont généralement des points
d’entrées applicatifs (les types de projets relatifs au GUI clients) sont par défaut
compilés en x86.&lt;/strong&gt; Ainsi si vous créez un projet Windows Forms, un projet WPF
ou une application Console vous pouvez constater que l’AnyCPU qui faisait loi jusqu’à
présent à laisser place à une configuration en x86. Les projets ASP.net et les bibliothèques
de classes ne sont pas concernés et restent par défaut en AnyCPU.
&lt;/p&gt;
&lt;h2 align="justify"&gt;Pourquoi ce changement alors que l’AnyCPU permet d’avoir des assemblys
multi-plateforme et donc portables ?
&lt;/h2&gt;
&lt;p align="justify"&gt;
Tout simplement, parce que les développeurs ne font pas assez souvent de tests de
leurs applicatifs sur des environnements 32 bits &lt;em&gt;&lt;strong&gt;ET&lt;/strong&gt;&lt;/em&gt; 64 bits.
Si vous développez dans un environnement 32 bits, et que vous ne testez pas votre
application 64 bits vous &lt;a href="http://patricelamarche.net/2009/02/26/AttentionAuxD%c3%a9pendancesDynamiquesPourLeSupportDu64Bits.aspx"&gt;risquez
d’avoir des problèmes si vous référencez des composants 32 bits&lt;/a&gt;. En effet, votre
point d’entrée étant en AnyCPU votre application sera compilée en 64 bits et sera
donc incapables de charger des composants 32 bits.
&lt;/p&gt;
&lt;p align="justify"&gt;
Modifier le paramétrage par défaut afin de compiler en x86 les projets de types GUI
clients permet d’avoir des applications qui fonctionneront dans tous les cas puisque
elles seront (par défaut) exécutées en 32 bits même sur un OS 64 bits. Vous êtes toujours
libre de changer cette configuration vers un compilation en AnyCPU mais prenez bien
garde à vos dépendances.
&lt;/p&gt;
&lt;p align="justify"&gt;
Quand aux projets ASP.net, ceux-ci concernent des applications serveurs qui ont potentiellement
bien moins de chance d’avoir des dépendances vers des composants 32 bits, et les bibliothèque
de classes restent en AnyCPU afin de garder leur portabilité, le point d’entrée de
votre application étant l’élément clé indiquant si le process doit être en 32 ou 64
bits.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=b13aeb47-bd48-4c1b-aab2-6845b788adca" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,b13aeb47-bd48-4c1b-aab2-6845b788adca.aspx</comments>
      <category>64 bits</category>
      <category>Visual Studio/2010</category>
    </item>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=73f59e67-45a3-4284-9704-8c1f750a1ed7</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,73f59e67-45a3-4284-9704-8c1f750a1ed7.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,73f59e67-45a3-4284-9704-8c1f750a1ed7.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=73f59e67-45a3-4284-9704-8c1f750a1ed7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
Lorsque l’on installe la version 64 bits de Virtual PC 2007 sur un OS 64 bits, on
est surpris de voir que le programme souhaite <a href="http://blogs.msdn.com/virtual_pc_guy/archive/2006/11/07/why-does-virtual-pc-2007-install-to-the-program-files-x86-directory.aspx">s’installer
dans le dossier Program Files(x86)</a> réservé aux applications 32 bits au lieu de
s’installer dans le dossier Program Files où reposent les applis 64 bits. Il n’y aucune
erreur dans l’installation, le fait est que Virtual PC 2007 64bits reste une application
32 bits mais qui utilise des drivers systèmes 64 bits.
</p>
        <p align="justify">
Cependant le fait que Virtual PC reste 32 bits, a un impact important : vous avez
beau avoir installé un 0S 64 bits et disposer de Virtual PC 64 bits,<strong> il ne
vous sera pas possible d’installer un OS 64 bits en Guest dans une machine virtuelle</strong> !
Si vous tentez une telle installation vous vous retrouverez avec l’erreur suivante
: “Attempting to load a 64-bit application, however this CPU is not compatible with
64-bit mode” :
</p>
        <p>
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/LavirtualisationWindows7etle64bits_89A1/clip_image001_2.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/LavirtualisationWindows7etle64bits_89A1/clip_image001_thumb.jpg" width="244" height="195" />
          </a>
        </p>
        <p align="justify">
          <strong>La même limite existe pour Windows Virtual PC (la version de VPC dédiée à
Windows 7) ainsi que pour Virtual Server 2005 R2. </strong>
        </p>
        <p align="justify">
La seule solution possible proposée par Microsoft pour virtualiser du 64 bits est
Hyper-V. A noter qu’il n’est pas conçu pour les notebooks et donc <a href="http://blogs.msdn.com/virtual_pc_guy/archive/2008/02/27/hyper-v-and-power-management.aspx">supporte
assez mal les mode de veille ou d’hibernation</a>.
</p>
        <p align="justify">
Autre solution, se passer des solutions Microsoft et utiliser VMWare qui est même
capable de faire tourner une machine virtuelle 64 bits dans un OS 32 bits.
</p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=73f59e67-45a3-4284-9704-8c1f750a1ed7" />
      </body>
      <title>La virtualisation, Windows 7 et le 64 bits</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,73f59e67-45a3-4284-9704-8c1f750a1ed7.aspx</guid>
      <link>http://patricelamarche.net/2009/08/20/LaVirtualisationWindows7EtLe64Bits.aspx</link>
      <pubDate>Thu, 20 Aug 2009 08:12:25 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
Lorsque l’on installe la version 64 bits de Virtual PC 2007 sur un OS 64 bits, on
est surpris de voir que le programme souhaite &lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/2006/11/07/why-does-virtual-pc-2007-install-to-the-program-files-x86-directory.aspx"&gt;s’installer
dans le dossier Program Files(x86)&lt;/a&gt; réservé aux applications 32 bits au lieu de
s’installer dans le dossier Program Files où reposent les applis 64 bits. Il n’y aucune
erreur dans l’installation, le fait est que Virtual PC 2007 64bits reste une application
32 bits mais qui utilise des drivers systèmes 64 bits.
&lt;/p&gt;
&lt;p align="justify"&gt;
Cependant le fait que Virtual PC reste 32 bits, a un impact important : vous avez
beau avoir installé un 0S 64 bits et disposer de Virtual PC 64 bits,&lt;strong&gt; il ne
vous sera pas possible d’installer un OS 64 bits en Guest dans une machine virtuelle&lt;/strong&gt; !
Si vous tentez une telle installation vous vous retrouverez avec l’erreur suivante
: “Attempting to load a 64-bit application, however this CPU is not compatible with
64-bit mode” :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/LavirtualisationWindows7etle64bits_89A1/clip_image001_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/LavirtualisationWindows7etle64bits_89A1/clip_image001_thumb.jpg" width="244" height="195" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;strong&gt;La même limite existe pour Windows Virtual PC (la version de VPC dédiée à
Windows 7) ainsi que pour Virtual Server 2005 R2. &lt;/strong&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
La seule solution possible proposée par Microsoft pour virtualiser du 64 bits est
Hyper-V. A noter qu’il n’est pas conçu pour les notebooks et donc &lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/2008/02/27/hyper-v-and-power-management.aspx"&gt;supporte
assez mal les mode de veille ou d’hibernation&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Autre solution, se passer des solutions Microsoft et utiliser VMWare qui est même
capable de faire tourner une machine virtuelle 64 bits dans un OS 32 bits.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=73f59e67-45a3-4284-9704-8c1f750a1ed7" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,73f59e67-45a3-4284-9704-8c1f750a1ed7.aspx</comments>
      <category>64 bits</category>
    </item>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=19a6e2ba-9ed5-4beb-b41e-260fafc1b0f1</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,19a6e2ba-9ed5-4beb-b41e-260fafc1b0f1.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,19a6e2ba-9ed5-4beb-b41e-260fafc1b0f1.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=19a6e2ba-9ed5-4beb-b41e-260fafc1b0f1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Si vous allez changer d’OS (pour migrer vers Windows 7 par exemple) et souhaitez être
sûr que votre machine supporte le 64 bits vous avez deux solutions simples.
</p>
        <p>
Si votre CPU fait partie de ceux-cités dans le tableau suivant vous avez votre réponse
:
</p>
        <table border="0" cellspacing="0" cellpadding="0">
          <tbody>
            <tr>
              <td>
                <p>
                  <b>Processeur</b>
                </p>
              </td>
              <td>
                <p>
                  <b>32- or 64-bit</b>
                </p>
              </td>
            </tr>
            <tr>
              <td>
                <p>
Intel Core Solo
</p>
              </td>
              <td>
                <p>
32 bit
</p>
              </td>
            </tr>
            <tr>
              <td>
                <p>
Intel Core Duo
</p>
              </td>
              <td>
                <p>
32 bit
</p>
              </td>
            </tr>
            <tr>
              <td>
                <p>
Intel Core 2 Duo
</p>
              </td>
              <td>
                <p>
64 bit
</p>
              </td>
            </tr>
            <tr>
              <td>
                <p>
Intel Quad-Core Xeon
</p>
              </td>
              <td>
                <p>
64 bit
</p>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
Sinon, vous pouvez utiliser un utilitaire proposé par Intel nommé “<a href="http://www.intel.com/support/processors/tools/piu/sb/CS-014921.htm ">Intel
Processor Identification Utility</a>” qui vous permettra d’avoir toutes sortes d’infos
sur votre CPU comme par exemple celle du support du 64 bits :
</p>
        <p>
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/SavoirsiunCPUsupportele64bits_8B02/clip_image001_2.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/SavoirsiunCPUsupportele64bits_8B02/clip_image001_thumb.jpg" width="631" height="490" />
          </a>
        </p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=19a6e2ba-9ed5-4beb-b41e-260fafc1b0f1" />
      </body>
      <title>Savoir si un CPU supporte le 64 bits</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,19a6e2ba-9ed5-4beb-b41e-260fafc1b0f1.aspx</guid>
      <link>http://patricelamarche.net/2009/08/13/SavoirSiUnCPUSupporteLe64Bits.aspx</link>
      <pubDate>Thu, 13 Aug 2009 07:53:17 GMT</pubDate>
      <description>&lt;p&gt;
Si vous allez changer d’OS (pour migrer vers Windows 7 par exemple) et souhaitez être
sûr que votre machine supporte le 64 bits vous avez deux solutions simples.
&lt;/p&gt;
&lt;p&gt;
Si votre CPU fait partie de ceux-cités dans le tableau suivant vous avez votre réponse
:
&lt;/p&gt;
&lt;table border="0" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;
&lt;b&gt;Processeur&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
&lt;b&gt;32- or 64-bit&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;
Intel Core Solo
&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
32 bit
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;
Intel Core Duo
&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
32 bit
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;
Intel Core 2 Duo
&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
64 bit
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;
Intel Quad-Core Xeon
&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
64 bit
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Sinon, vous pouvez utiliser un utilitaire proposé par Intel nommé “&lt;a href="http://www.intel.com/support/processors/tools/piu/sb/CS-014921.htm "&gt;Intel
Processor Identification Utility&lt;/a&gt;” qui vous permettra d’avoir toutes sortes d’infos
sur votre CPU comme par exemple celle du support du 64 bits :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/SavoirsiunCPUsupportele64bits_8B02/clip_image001_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/SavoirsiunCPUsupportele64bits_8B02/clip_image001_thumb.jpg" width="631" height="490" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=19a6e2ba-9ed5-4beb-b41e-260fafc1b0f1" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,19a6e2ba-9ed5-4beb-b41e-260fafc1b0f1.aspx</comments>
      <category>64 bits</category>
    </item>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=9b14da1c-3563-4dd7-877d-6bdd15020bec</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,9b14da1c-3563-4dd7-877d-6bdd15020bec.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,9b14da1c-3563-4dd7-877d-6bdd15020bec.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9b14da1c-3563-4dd7-877d-6bdd15020bec</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
Disposer d'une machine virtuelle et d'une compilation en deux phases permet de bénéficier
d'un support du 64 bits quasi-automatique. Si l'on compile une assembly en Any Cpu,
celle-ci sera compilée en JIT en 32 bits si elle est chargée dans un process 32 bits
ou en 64 bits dans le cas d'un chargement dans un process 64 bits. De plus si une
assembly a des dépendances vers des assemblys 32 bits ou vers des DLL natives 32 bits, 
elle se retrouvera automatiquement compilée en 32 bits même si chargée dans un environnement
64 bits. 
</p>
        <p align="justify">
Il faut cependant noter que cette analyse de dépendances ne concerne que les dépendances
statiques et en aucun cas les dépendances dynamiques (introduites via du code). 
</p>
        <p align="justify">
J'ai récemment rencontré le problème à propos de l'utilisation d'un filtre DirectShow.
Le filtre est instancié via un Activator.CreateInstance afin d'être manipulé et insérer
au sein d'un graphe de cette manière :
</p>
        <p>
        </p>
        <div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:deb4ceba-80f8-451b-8034-ac983fa0b26e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
          <pre name="code" class="c#">    /// &lt;summary&gt;
    /// Wrapper of the HttpDestinationFilter
    /// &lt;/summary&gt;
    public class HttpDestinationFilter
    {
        private static readonly Guid CLSID_HttpDestination = new Guid("E6788379-AAA3-4516-86EC-158B7A49EA74");

        public static IBaseFilter CreateInstance()
        {
            return (IBaseFilter) Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_HttpDestination, true));
        }
    }</pre>
        </div>
        <p>
        </p>
        <p>
Seul problème, lors de l'exécution de ce code sur une plate-forme 64 bits, l'instanciation
peut échouer si le composant en question est en 32 bits et si l'assembly est compilée
en Any Cpu. 
</p>
        <p>
Etant sur un Windows 64 bits, <a href="http://support.microsoft.com/kb/896459">la
base de registres est en grande partie divisée en deux versions</a>, une copie pour
les applications 32 bits et une autre copie pour les application 64 bits. Il est ainsi
(entre autres raisons) impossible d'utiliser des composants COM 32 bits depuis une
application 64 bits car le composant se retrouve introuvable du fait de la redirection.
La correction du problème est simple : trouver une version 64 bits du composant en
question ou alors définir manuellement la target de compilation afin d'indiquer un
compilation en 32 bits.
</p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=9b14da1c-3563-4dd7-877d-6bdd15020bec" />
      </body>
      <title>Attention aux dépendances dynamiques pour le support du 64 bits</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,9b14da1c-3563-4dd7-877d-6bdd15020bec.aspx</guid>
      <link>http://patricelamarche.net/2009/02/26/AttentionAuxD%c3%a9pendancesDynamiquesPourLeSupportDu64Bits.aspx</link>
      <pubDate>Thu, 26 Feb 2009 05:24:58 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
Disposer d'une machine virtuelle et d'une compilation en deux phases permet de bénéficier
d'un support du 64 bits quasi-automatique. Si l'on compile une assembly en Any Cpu,
celle-ci sera compilée en JIT en 32 bits si elle est chargée dans un process 32 bits
ou en 64 bits dans le cas d'un chargement dans un process 64 bits. De plus si une
assembly a des dépendances vers des assemblys 32 bits ou vers des DLL natives 32 bits,&amp;nbsp;
elle se retrouvera automatiquement compilée en 32 bits même si chargée dans un environnement
64 bits. 
&lt;/p&gt;
&lt;p align="justify"&gt;
Il faut cependant noter que cette analyse de dépendances ne concerne que les dépendances
statiques et en aucun cas les dépendances dynamiques (introduites via du code). 
&lt;/p&gt;
&lt;p align="justify"&gt;
J'ai récemment rencontré le problème à propos de l'utilisation d'un filtre DirectShow.
Le filtre est instancié via un Activator.CreateInstance afin d'être manipulé et insérer
au sein d'un graphe de cette manière :
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:deb4ceba-80f8-451b-8034-ac983fa0b26e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;    /// &amp;lt;summary&amp;gt;
    /// Wrapper of the HttpDestinationFilter
    /// &amp;lt;/summary&amp;gt;
    public class HttpDestinationFilter
    {
        private static readonly Guid CLSID_HttpDestination = new Guid("E6788379-AAA3-4516-86EC-158B7A49EA74");

        public static IBaseFilter CreateInstance()
        {
            return (IBaseFilter) Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_HttpDestination, true));
        }
    }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Seul problème, lors de l'exécution de ce code sur une plate-forme 64 bits, l'instanciation
peut échouer si le composant en question est en 32 bits et si l'assembly est compilée
en Any Cpu. 
&lt;/p&gt;
&lt;p&gt;
Etant sur un Windows 64 bits, &lt;a href="http://support.microsoft.com/kb/896459"&gt;la
base de registres est en grande partie divisée en deux versions&lt;/a&gt;, une copie pour
les applications 32 bits et une autre copie pour les application 64 bits. Il est ainsi
(entre autres raisons) impossible d'utiliser des composants COM 32 bits depuis une
application 64 bits car le composant se retrouve introuvable du fait de la redirection.
La correction du problème est simple : trouver une version 64 bits du composant en
question ou alors définir manuellement la target de compilation afin d'indiquer un
compilation en 32 bits.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=9b14da1c-3563-4dd7-877d-6bdd15020bec" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,9b14da1c-3563-4dd7-877d-6bdd15020bec.aspx</comments>
      <category>64 bits</category>
    </item>
  </channel>
</rss>