Symptômes
Sur un ordinateur qui exécute le Microsoft.NET Framework 3.5 Service Pack 1 (SP1), compilateur juste-à-temps (JIT) et la Native Image Generator (Ngen.exe) qui utilisent le fichier Mscorjit.dll peuvent générer du code incorrect. Par conséquent, une application C++ managée de 32 bits peut produire des résultats incorrects.
Ce problème se produit si les conditions suivantes sont remplies :
-
La structure ou la classe dans le code source a moins de quatre types scalaires et aucune référence d’objet managé.
-
Vous utilisez l’instruction Cpblk ou l’instruction Initblk.
Remarque Ce problème ne se produit pas dans une application 64 bits.
Cause
Ce problème est dû à une régression dans le.NET Framework 3.5 SP1.
Résolution
Informations sur le correctif
Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif vise à corriger uniquement le problème décrit dans cet article. Appliquez ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif.
Pour télécharger ce correctif depuis MSDN Code Gallery, visitez le site Web de Microsoft à l’adresse suivante :
http://code.msdn.microsoft.com/KB957542
Remarque MSDN Code Gallery affiche les langues pour lesquelles ce correctif est disponible. Si vous ne voyez pas votre langue, c'est certainement dû au fait que la page de ressource Code Gallery n'existe pas dans cette langue.
Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être formuler une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions et problèmes qui ne relèvent pas de ce correctif logiciel. Pour une liste complète des numéros de téléphone du Service clientèle et support technique de Microsoft ou pour créer une demande de service distincte, visitez le site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/contactus/?ws=supportRemarque Si vous avez une application 32 bits qui s’exécute sur une plate-forme 64 bits, appliquez le correctif pour la version 64 bits résoudre ce problème.
Conditions préalables
Vous devez avoir le.NET Framework 3.5 Service Pack 1 pour appliquer ce correctif.
Nécessite un redémarrage
Vous devrez peut-être redémarrer l’ordinateur si les fichiers qui sont mis à jour sont utilisées.
Informations de remplacement du correctif
Ce correctif ne remplace aucun autre correctif.
Informations sur les fichiers
La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.
Windows 2000, Windows XP et Windows Server 2003, x86 les versions
Nom de fichier |
Version de fichier |
Taille du fichier |
Date |
Heure |
---|---|---|---|---|
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
16-Sep-2008 |
13:13 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
16-Sep-2008 |
13:13 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
16-Sep-2008 |
13:13 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
16-Sep-2008 |
13:13 |
Windows 2000, Windows XP et Windows Server 2003, x64 les versions
Nom de fichier |
Version de fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
---|---|---|---|---|---|
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
16-Sep-2008 |
13:13 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
16-Sep-2008 |
13:13 |
x86 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
16-Sep-2008 |
13:13 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
16-Sep-2008 |
13:13 |
x86 |
Mscordacwks.dll |
2.0.50727.3068 |
1,767,944 |
16-Sep-2008 |
10:33 |
x64 |
Mscorjit.dll |
2.0.50727.3068 |
1,580,032 |
16-Sep-2008 |
10:33 |
x64 |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
16-Sep-2008 |
10:33 |
x64 |
Mscorwks.dll |
2.0.50727.3068 |
10,079,744 |
16-Sep-2008 |
10:33 |
x64 |
Windows 2000, Windows XP et Windows Server 2003, les versions IA-64
Nom de fichier |
Version de fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
---|---|---|---|---|---|
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
16-Sep-2008 |
13:13 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
16-Sep-2008 |
13:13 |
x86 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
16-Sep-2008 |
13:13 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
16-Sep-2008 |
13:13 |
x86 |
Mscordacwks.dll |
2.0.50727.3068 |
3,087,880 |
16-Sep-2008 |
10:44 |
IA-64 |
Mscorjit.dll |
2.0.50727.3068 |
2,560,512 |
16-Sep-2008 |
10:44 |
IA-64 |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
16-Sep-2008 |
10:44 |
IA-64 |
Mscorwks.dll |
2.0.50727.3068 |
20,153,856 |
16-Sep-2008 |
10:44 |
IA-64 |
Windows Vista Service Pack 1 (SP1) et Windows Server 2008, x86 les versions
Nom de fichier |
Version de fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
---|---|---|---|---|---|
Mscorlib.resources.dll |
2.0.50727.3053 |
352,256 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
425,984 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307 200 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
331,776 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307 200 |
27-Jul-2008 |
17:55 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
348,160 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
319,488 |
27-Jul-2008 |
17:55 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
290,816 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
27-Jul-2008 |
17:55 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307 200 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.1434 |
397,312 |
11-Jan-2008 |
22:59 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:55 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:55 |
x86 |
Big5.nlp |
Ne s'applique pas |
66,728 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Bopomofo.nlp |
Ne s'applique pas |
82,172 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Ksc.nlp |
Ne s'applique pas |
116,756 |
18-Dec-2007 |
21:04 |
Ne s'applique pas |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Ne s'applique pas |
59,342 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfc.nlp |
Ne s'applique pas |
45,794 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfd.nlp |
Ne s'applique pas |
39,284 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfkc.nlp |
Ne s'applique pas |
66,384 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfkd.nlp |
Ne s'applique pas |
60,294 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Prc.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Prcp.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Sortkey.nlp |
Ne s'applique pas |
262,148 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Sorttbls.nlp |
Ne s'applique pas |
20,320 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Xjis.nlp |
Ne s'applique pas |
28,288 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
01-Oct-2008 |
22:27 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
24-Sep-2008 |
22:21 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
01-Oct-2008 |
22:27 |
x86 |
Windows Vista SP1 et Windows Server 2008, x64 les versions
Nom de fichier |
Version de fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
---|---|---|---|---|---|
Big5.nlp |
Ne s'applique pas |
66,728 |
18-Dec-2007 |
21:01 |
Ne s'applique pas |
Bopomofo.nlp |
Ne s'applique pas |
82,172 |
18-Dec-2007 |
21:01 |
Ne s'applique pas |
Ksc.nlp |
Ne s'applique pas |
116,756 |
18-Dec-2007 |
21:02 |
Ne s'applique pas |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
01-Oct-2008 |
22:25 |
x64 |
Normidna.nlp |
Ne s'applique pas |
59,342 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Normnfc.nlp |
Ne s'applique pas |
45,794 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Normnfd.nlp |
Ne s'applique pas |
39,284 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Normnfkc.nlp |
Ne s'applique pas |
66,384 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Normnfkd.nlp |
Ne s'applique pas |
60,294 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Prc.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Prcp.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Sortkey.nlp |
Ne s'applique pas |
262,148 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Sorttbls.nlp |
Ne s'applique pas |
20,320 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Xjis.nlp |
Ne s'applique pas |
28,288 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Mscordacwks.dll |
2.0.50727.3068 |
1,767,944 |
01-Oct-2008 |
22:25 |
x64 |
Mscorjit.dll |
2.0.50727.3068 |
1,580,032 |
24-Sep-2008 |
23:06 |
x64 |
Mscorwks.dll |
2.0.50727.3068 |
10,079,744 |
01-Oct-2008 |
22:25 |
x64 |
Mscorlib.resources.dll |
2.0.50727.3053 |
352,256 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
27-Jul-2008 |
18:02 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
425,984 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307 200 |
27-Jul-2008 |
18:02 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
27-Jul-2008 |
18:02 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
331,776 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307 200 |
27-Jul-2008 |
17:56 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
348,160 |
27-Jul-2008 |
18:02 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
319,488 |
27-Jul-2008 |
17:56 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
290,816 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
27-Jul-2008 |
17:56 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307 200 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.1434 |
397,312 |
11-Jan-2008 |
22:59 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:56 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:56 |
x86 |
Big5.nlp |
Ne s'applique pas |
66,728 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Bopomofo.nlp |
Ne s'applique pas |
82,172 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Ksc.nlp |
Ne s'applique pas |
116,756 |
18-Dec-2007 |
21:04 |
Ne s'applique pas |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Ne s'applique pas |
59,342 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfc.nlp |
Ne s'applique pas |
45,794 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfd.nlp |
Ne s'applique pas |
39,284 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfkc.nlp |
Ne s'applique pas |
66,384 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfkd.nlp |
Ne s'applique pas |
60,294 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Prc.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Prcp.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Sortkey.nlp |
Ne s'applique pas |
262,148 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Sorttbls.nlp |
Ne s'applique pas |
20,320 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Xjis.nlp |
Ne s'applique pas |
28,288 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
01-Oct-2008 |
22:27 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
24-Sep-2008 |
22:21 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
01-Oct-2008 |
22:27 |
x86 |
Windows Vista SP1 et Windows Server 2008, versions IA-64
Nom de fichier |
Version de fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
---|---|---|---|---|---|
Big5.nlp |
Ne s'applique pas |
66,728 |
18-Dec-2007 |
21:06 |
Ne s'applique pas |
Bopomofo.nlp |
Ne s'applique pas |
82,172 |
18-Dec-2007 |
21:06 |
Ne s'applique pas |
Ksc.nlp |
Ne s'applique pas |
116,756 |
18-Dec-2007 |
21:06 |
Ne s'applique pas |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
01-Oct-2008 |
22:26 |
IA-64 |
Normidna.nlp |
Ne s'applique pas |
59,342 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Normnfc.nlp |
Ne s'applique pas |
45,794 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Normnfd.nlp |
Ne s'applique pas |
39,284 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Normnfkc.nlp |
Ne s'applique pas |
66,384 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Normnfkd.nlp |
Ne s'applique pas |
60,294 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Prc.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Prcp.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Sortkey.nlp |
Ne s'applique pas |
262,148 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Sorttbls.nlp |
Ne s'applique pas |
20,320 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Xjis.nlp |
Ne s'applique pas |
28,288 |
18-Dec-2007 |
21:08 |
Ne s'applique pas |
Mscordacwks.dll |
2.0.50727.3068 |
3,087,880 |
01-Oct-2008 |
22:26 |
IA-64 |
Mscorjit.dll |
2.0.50727.3068 |
2,560,512 |
24-Sep-2008 |
23:14 |
IA-64 |
Mscorwks.dll |
2.0.50727.3068 |
20,153,856 |
01-Oct-2008 |
22:26 |
IA-64 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
348,160 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
319,488 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:59 |
x86 |
Big5.nlp |
Ne s'applique pas |
66,728 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Bopomofo.nlp |
Ne s'applique pas |
82,172 |
18-Dec-2007 |
21:03 |
Ne s'applique pas |
Ksc.nlp |
Ne s'applique pas |
116,756 |
18-Dec-2007 |
21:04 |
Ne s'applique pas |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Ne s'applique pas |
59,342 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfc.nlp |
Ne s'applique pas |
45,794 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfd.nlp |
Ne s'applique pas |
39,284 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfkc.nlp |
Ne s'applique pas |
66,384 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Normnfkd.nlp |
Ne s'applique pas |
60,294 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Prc.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Prcp.nlp |
Ne s'applique pas |
83,748 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Sortkey.nlp |
Ne s'applique pas |
262,148 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Sorttbls.nlp |
Ne s'applique pas |
20,320 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Xjis.nlp |
Ne s'applique pas |
28,288 |
18-Dec-2007 |
21:05 |
Ne s'applique pas |
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
01-Oct-2008 |
22:27 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
24-Sep-2008 |
22:21 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
01-Oct-2008 |
22:27 |
x86 |
Solution de contournement
Pour contourner ce problème, appliquez l’une des méthodes suivantes.
Méthode 1
Si le code d’application ressemble à l’exemple de code dans la section « Informations complémentaires », recherchez la ligne de code suivante.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
Modifiez cette ligne de code comme suit.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))
Méthode 2
Déployer un fichier .ini. Pour ce faire, créez un fichier qui contient le code suivant.
[.NET Framework Debugging Control]AllowOptimize=0
Nom du fichier .ini du même module problématique, mais utiliser l’extension .ini au lieu de l’extension .dll. Par exemple, pour l’exemple de code dans la section « Informations complémentaires », nommez le fichier .ini le fichier Bug.ini. Placez le fichier Bug.ini dans le même répertoire que le fichier Bug.dll.
Remarque L’inconvénient de cette méthode est l’effet potentiel de performances pour aucune optimisation. Si vous utilisez le Générateur d’images natives (Ngen.exe) pour précompiler le module, cette méthode n’est pas applicable.
Méthode 3
Appliquer de manière sélective l’option NoOptimization de l’énumération MethodImplOptions pour les méthodes qui pose problème à l’aide de la classe MethodImplAttribute .
Remarque Cette méthode désactive les optimisations du compilateur JIT et Native Image Generator (Ngen.exe) sur un niveau de méthode. Combien les performances sont affectées varient en fonction de la méthode.
État
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Plus d'informations
Procédure pour reproduire le problème
-
Créez une application C++ qui est basée sur le.NET Framework 3.5 SP1.
-
Ajouter un fichier .cpp au projet et nommez ce fichier le fichier Bug.cpp, puis collez le code suivant dans le fichier Bug.cpp.
#using <mscorlib.dll>#include <stdlib.h>
class AcGeVector3d
{
double x, y, z;
public:
__forceinline AcGeVector3d(const AcGeVector3d& src): x(src.x),y(src.y),z(src.z)
{
}
__forceinline AcGeVector3d(double xx, double yy, double zz) : x(xx),y(yy),z(zz)
{
}
__forceinline AcGeVector3d operator / (double val) const
{
return AcGeVector3d (x/val, y/val, z/val);
}
};
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x)))
namespace Geometry
{
[System::Runtime::InteropServices::StructLayout(System::Runtime::InteropServices::LayoutKind::Sequential)]
public value class Vector3d
{
internal:
double m_x, m_y, m_z;
Vector3d(const AcGeVector3d* obj)
{
GETVECTOR3D(*this) = *obj;
}
public:
Vector3d(double x, double y, double z):m_x(x),m_y(y), m_z(z) {}
Vector3d DivideBy(double value)
{
return Vector3d(&GETVECTOR3D(*this).operator /(value));
}
virtual System::String^ ToString() override
{
return System::String::Format("{0}, {1}, {2}", m_x, m_y, m_z);
}
};
} -
Pour compiler le fichier Bug.cpp, exécutez la commande suivante :
cl /clr /GL/O2 bug.cpp /link /dll /out:bug.dll
-
Créez un projet Microsoft Visual C# à utiliser en tant que le projet client.
-
Nommez le fichier de code du fichier Test.cs et puis collez le code suivant dans le fichier Test.cs.
using Geometry;namespace Test
{
class Tester
{
static void Main()
{
Vector3d v = new Vector3d(200, 200, 0);
v = v.DivideBy(150);
System.Console.WriteLine("{0}", v);
}
}
} -
Pour compiler le fichier Test.cs, exécutez la commande suivante :
csc /r:bug.dll test.cs
-
Pour incorporer le manifeste dans le fichier Test.exe, exécutez la commande suivante :
MT.exe - nologo-manifeste de bug.dll.manifest-outputresource:test.exe;1
-
Exécutez le fichier Test.exe.
Notez que le résultat réel est le suivant :
1.33333333333333, 1.333333333333, 0Toutefois, le résultat attendu est le suivant :
1.33333333333333, 0, 0
Références
Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft