Sintomi
In un computer che esegue Microsoft.NET Framework 3.5 Service Pack 1 (SP1), compilatore just-in-time (JIT) e Generatore di immagini Native (Ngen.exe) che utilizzano il file mscorjit. dll potrebbe generare codice non corretto. Pertanto, un'applicazione C++ gestita di 32 bit può produrre risultati non corretti.
Questo problema si verifica se sono vere le seguenti condizioni:
-
La struttura o la classe nel codice sorgente ha meno di quattro tipi scalari e nessun riferimento oggetto gestito.
-
Utilizzare l'istruzione Cpblk o l'istruzione Initblk.
Nota: Questo problema si verifica in un'applicazione a 64 bit.
Causa
Questo problema si verifica a causa di una regressione in.NET Framework 3.5 SP1.
Risoluzione
Informazioni sull'hotfix
Un hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato esclusivamente alla correzione del problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Se il problema non causa gravi difficoltà, si consiglia di attendere il successivo aggiornamento software contenente tale hotfix.
Per scaricare questo hotfix da MSDN Code Gallery, visitare il seguente sito Web Microsoft:
http://code.msdn.microsoft.com/KB957542
Nota: MSDN Code Gallery vengono visualizzate le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua elencata, è perché la pagina delle risorse di Code Gallery non è disponibile per tale lingua.
Nota: Se si verificano ulteriori problemi o se è necessaria attività di risoluzione aggiuntiva, potrebbe essere necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNota: Se si dispone di un'applicazione a 32 bit che viene eseguito su una piattaforma a 64 bit, applicare l'hotfix per la versione a 64 bit risolvere il problema.
Prerequisiti
È necessario disporre di.NET Framework 3.5 SP1 installata per applicare questo hotfix.
Richiesta di riavvio
Potrebbe essere necessario riavviare il computer se vengono utilizzati i file che vengono aggiornati.
Informazioni sulla sostituzione dell'aggiornamento rapido
Questo hotfix non sostituisce eventuali altri aggiornamenti rapidi.
Informazioni sui file
La versione inglese di questo hotfix presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e ore dei file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare la scheda fuso orario nell'elemento di Data e ora nel Pannello di controllo.
Windows 2000, Windows XP e Windows Server 2003 x86 versioni
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
---|---|---|---|---|
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 e Windows Server 2003, versioni x64
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
Piattaforma |
---|---|---|---|---|---|
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 e Windows Server 2003, versioni IA-64
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
Piattaforma |
---|---|---|---|---|---|
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) e Windows Server 2008, x86 versioni
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
Piattaforma |
---|---|---|---|---|---|
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 |
Non applicabile |
66,728 |
18-Dec-2007 |
21:03 |
Non applicabile |
Bopomofo.nlp |
Non applicabile |
82,172 |
18-Dec-2007 |
21:03 |
Non applicabile |
Ksc.nlp |
Non applicabile |
116,756 |
18-Dec-2007 |
21:04 |
Non applicabile |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Non applicabile |
59,342 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfc.nlp |
Non applicabile |
45,794 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfd.nlp |
Non applicabile |
39,284 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfkc.nlp |
Non applicabile |
66,384 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfkd.nlp |
Non applicabile |
60,294 |
18-Dec-2007 |
21:05 |
Non applicabile |
Prc.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:05 |
Non applicabile |
Prcp.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:05 |
Non applicabile |
Sortkey.nlp |
Non applicabile |
262,148 |
18-Dec-2007 |
21:05 |
Non applicabile |
Sorttbls.nlp |
Non applicabile |
20,320 |
18-Dec-2007 |
21:05 |
Non applicabile |
Xjis.nlp |
Non applicabile |
28,288 |
18-Dec-2007 |
21:05 |
Non applicabile |
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 e Windows Server 2008 x64 versioni
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
Piattaforma |
---|---|---|---|---|---|
Big5.nlp |
Non applicabile |
66,728 |
18-Dec-2007 |
21:01 |
Non applicabile |
Bopomofo.nlp |
Non applicabile |
82,172 |
18-Dec-2007 |
21:01 |
Non applicabile |
Ksc.nlp |
Non applicabile |
116,756 |
18-Dec-2007 |
21:02 |
Non applicabile |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
01-Oct-2008 |
22:25 |
x64 |
Normidna.nlp |
Non applicabile |
59,342 |
18-Dec-2007 |
21:03 |
Non applicabile |
Normnfc.nlp |
Non applicabile |
45,794 |
18-Dec-2007 |
21:03 |
Non applicabile |
Normnfd.nlp |
Non applicabile |
39,284 |
18-Dec-2007 |
21:03 |
Non applicabile |
Normnfkc.nlp |
Non applicabile |
66,384 |
18-Dec-2007 |
21:03 |
Non applicabile |
Normnfkd.nlp |
Non applicabile |
60,294 |
18-Dec-2007 |
21:03 |
Non applicabile |
Prc.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:03 |
Non applicabile |
Prcp.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:03 |
Non applicabile |
Sortkey.nlp |
Non applicabile |
262,148 |
18-Dec-2007 |
21:03 |
Non applicabile |
Sorttbls.nlp |
Non applicabile |
20,320 |
18-Dec-2007 |
21:03 |
Non applicabile |
Xjis.nlp |
Non applicabile |
28,288 |
18-Dec-2007 |
21:03 |
Non applicabile |
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 |
Non applicabile |
66,728 |
18-Dec-2007 |
21:03 |
Non applicabile |
Bopomofo.nlp |
Non applicabile |
82,172 |
18-Dec-2007 |
21:03 |
Non applicabile |
Ksc.nlp |
Non applicabile |
116,756 |
18-Dec-2007 |
21:04 |
Non applicabile |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Non applicabile |
59,342 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfc.nlp |
Non applicabile |
45,794 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfd.nlp |
Non applicabile |
39,284 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfkc.nlp |
Non applicabile |
66,384 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfkd.nlp |
Non applicabile |
60,294 |
18-Dec-2007 |
21:05 |
Non applicabile |
Prc.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:05 |
Non applicabile |
Prcp.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:05 |
Non applicabile |
Sortkey.nlp |
Non applicabile |
262,148 |
18-Dec-2007 |
21:05 |
Non applicabile |
Sorttbls.nlp |
Non applicabile |
20,320 |
18-Dec-2007 |
21:05 |
Non applicabile |
Xjis.nlp |
Non applicabile |
28,288 |
18-Dec-2007 |
21:05 |
Non applicabile |
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 e Windows Server 2008, versioni IA-64
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
Piattaforma |
---|---|---|---|---|---|
Big5.nlp |
Non applicabile |
66,728 |
18-Dec-2007 |
21:06 |
Non applicabile |
Bopomofo.nlp |
Non applicabile |
82,172 |
18-Dec-2007 |
21:06 |
Non applicabile |
Ksc.nlp |
Non applicabile |
116,756 |
18-Dec-2007 |
21:06 |
Non applicabile |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
01-Oct-2008 |
22:26 |
IA-64 |
Normidna.nlp |
Non applicabile |
59,342 |
18-Dec-2007 |
21:08 |
Non applicabile |
Normnfc.nlp |
Non applicabile |
45,794 |
18-Dec-2007 |
21:08 |
Non applicabile |
Normnfd.nlp |
Non applicabile |
39,284 |
18-Dec-2007 |
21:08 |
Non applicabile |
Normnfkc.nlp |
Non applicabile |
66,384 |
18-Dec-2007 |
21:08 |
Non applicabile |
Normnfkd.nlp |
Non applicabile |
60,294 |
18-Dec-2007 |
21:08 |
Non applicabile |
Prc.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:08 |
Non applicabile |
Prcp.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:08 |
Non applicabile |
Sortkey.nlp |
Non applicabile |
262,148 |
18-Dec-2007 |
21:08 |
Non applicabile |
Sorttbls.nlp |
Non applicabile |
20,320 |
18-Dec-2007 |
21:08 |
Non applicabile |
Xjis.nlp |
Non applicabile |
28,288 |
18-Dec-2007 |
21:08 |
Non applicabile |
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 |
Non applicabile |
66,728 |
18-Dec-2007 |
21:03 |
Non applicabile |
Bopomofo.nlp |
Non applicabile |
82,172 |
18-Dec-2007 |
21:03 |
Non applicabile |
Ksc.nlp |
Non applicabile |
116,756 |
18-Dec-2007 |
21:04 |
Non applicabile |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Non applicabile |
59,342 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfc.nlp |
Non applicabile |
45,794 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfd.nlp |
Non applicabile |
39,284 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfkc.nlp |
Non applicabile |
66,384 |
18-Dec-2007 |
21:05 |
Non applicabile |
Normnfkd.nlp |
Non applicabile |
60,294 |
18-Dec-2007 |
21:05 |
Non applicabile |
Prc.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:05 |
Non applicabile |
Prcp.nlp |
Non applicabile |
83,748 |
18-Dec-2007 |
21:05 |
Non applicabile |
Sortkey.nlp |
Non applicabile |
262,148 |
18-Dec-2007 |
21:05 |
Non applicabile |
Sorttbls.nlp |
Non applicabile |
20,320 |
18-Dec-2007 |
21:05 |
Non applicabile |
Xjis.nlp |
Non applicabile |
28,288 |
18-Dec-2007 |
21:05 |
Non applicabile |
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 |
Soluzione alternativa
Per risolvere questo problema, utilizzare uno dei metodi descritti di seguito.
Metodo 1
Se il codice dell'applicazione è simile al codice di esempio nella sezione "Informazioni", individuare la seguente riga di codice.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
Modificare questa riga di codice come segue.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))
Metodo 2
Distribuire un file ini. A tale scopo, creare un file che contiene il codice riportato di seguito.
[.NET Framework Debugging Control]AllowOptimize=0
Denominare il file ini lo stesso modulo problematico, ma l'estensione di file ini anziché l'estensione dll. Ad esempio per il codice di esempio nella sezione "Informazioni", nome del file ini il file Bug.ini. Inserire il file Bug.ini nella stessa directory del file Bug.dll.
Nota: Lo svantaggio di questo metodo è l'effetto potenziale di prestazioni per alcuna ottimizzazione. Se si utilizza il generatore di immagini Native (Ngen.exe) per precompilare il modulo, questo metodo non è applicabile.
Metodo 3
Consente di applicare in modo selettivo l'opzione NoOptimization dell'enumerazione MethodImplOptions ai metodi che presentano problemi utilizzando la classe MethodImplAttribute .
Nota: Questo metodo disabilita le ottimizzazioni per il compilatore JIT e Native Image Generator (Ngen.exe) a livello di ciascun metodo. La quantità di prestazioni varia a seconda del metodo.
Stato
Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".
Ulteriori informazioni
Procedura per riprodurre il problema
-
Creare un'applicazione C++ basato su.NET Framework 3.5 SP1.
-
Aggiungere un file cpp al progetto, nome del file, il file bug. cpp e quindi incollare il codice seguente nel file bug.
#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);
}
};
} -
Per compilare file bug, eseguire il comando seguente:
cl /clr /GL /O2 bug. cpp /link /dll /out:bug.dll
-
Creare un nuovo progetto Microsoft Visual C# da utilizzare come il progetto client.
-
Nome del file di codice il file Test.cs e quindi incollare il codice seguente nel file 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);
}
}
} -
Per compilare il file Test.cs, eseguire il comando seguente:
csc /r:bug.dll test.cs
-
Per incorporare il manifesto nel file Test.exe, eseguire il comando seguente:
MT.exe - nologo-manifesto bug.dll.manifest-outputresource:test.exe;1
-
Eseguire il file Test.exe.
Si noti che il risultato effettivo come segue:
1.33333333333333, 1.333333333333, 0Tuttavia, il risultato previsto è come segue:
1.33333333333333, 0, 0
Riferimenti
Per ulteriori informazioni sulla terminologia degli aggiornamenti software, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
824684 descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft