Belirtiler
Microsoft .NET Framework 3.5 Service Pack 1 (SP1) çalıştıran bir bilgisayarda, just-in-time (JIT) derleyici ve yerel görüntü Mscorjit.dll dosyasını kullanan Oluşturucu (Ngen.exe) yanlış kod oluşturulmasına neden olabilir. Bu nedenle, 32-bit yönetilen C++ uygulama yanlış sonuçlara neden olabilir.
Bu sorun, aşağıdaki koşullar geçerli olursa oluşur:
-
Yapı ya da sınıf kaynak kodda dört skalar çeşitlerinin ve hiçbir Yönetilen Nesne başvurularını daha vardır.
-
Cpblk yönerge veya Initblk yönergesi kullanın.
Not: 64 bitlik bir uygulama içinde bu sorun oluşmaz.
Neden
Bu sorun, .NET Framework 3.5 SP1'i bir gerileme nedeniyle oluşur.
Çözüm
Düzeltme bilgileri
Microsoft, desteklenen bir düzeltmeyi kullanıma sunmuştur. Ancak bu düzeltme yalnızca bu makalede anlatılan sorunu düzeltmek amacıyla hazırlanmıştır. Bu düzeltmeyi yalnızca bu sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltme, ek test süreci gerektirebilir. Bu nedenle bu sorundan ciddi bir şekilde etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki yazılım güncelleştirmesini beklemeniz önerilir.
Bu düzeltmeyi MSDN kod Galerisi'nden yüklemek için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://code.msdn.microsoft.com/KB957542
Not: MSDN Kod Galerisi'nde düzeltmenin kullanılabilir olduğu diller görüntülenir. Kendi dilinizi görmüyorsanız, bu dil için kod Galerisi kaynak sayfası kullanılamıyor demektir.
Not: Ek sorunlar oluşursa veya sorun giderme gerekiyorsa, ayrı bir hizmet isteği oluşturmanız gerekebilir. Ek destek sorularına ve bu düzeltme için geçerli olmayan sorunlara normal destek ücretleri uygulanır. Microsoft Müşteri Hizmetleri ve Destek bölümünün tam liste telefon numaralarına ulaşmak veya ayrı bir hizmet isteği oluşturmak için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=supportNot: 64-bit platformunda çalışan 32 bitlik bir uygulama varsa, bu sorunu gidermek 64 bit sürümü için düzeltmeyi uygulayın.
Önkoşullar
Bu düzeltmeyi uygulayabilmeniz için .NET Framework 3.5 SP1'in yüklü olması gerekir.
Yeniden başlatma gereksinimi
Güncelleştirilen dosyalardan herhangi birinin kullanılıyorsa bilgisayarı yeniden başlatmanız gerekebilir.
Düzeltme değiştirme bilgileri
Bu düzeltme eki, başka düzeltmelerin yerini almaz.
Dosya bilgileri
Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'te (UTC) listelenmiştir. Dosya bilgilerini görüntülediğinizde koordinatlı evrensel saat yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için Denetim Masası'ndaki Tarih ve Saat öğesinde Saat Dilimi sekmesini kullanın.
Windows 2000, Windows XP ve Windows Server 2003, x86 sürümleri
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
---|---|---|---|---|
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 ve Windows Server 2003, x64 sürümleri
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
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 ve Windows Server 2003 IA-64 sürümleri
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
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) ve Windows Server 2008 ' in x86 sürümleri
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
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 |
Geçerli değil |
66,728 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Bopomofo.nlp |
Geçerli değil |
82,172 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Ksc.nlp |
Geçerli değil |
116,756 |
18-Dec-2007 |
21:04 |
Geçerli değil |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Geçerli değil |
59,342 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfc.nlp |
Geçerli değil |
45,794 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfd.nlp |
Geçerli değil |
39,284 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfkc.nlp |
Geçerli değil |
66,384 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfkd.nlp |
Geçerli değil |
60,294 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Prc.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Prcp.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Sortkey.nlp |
Geçerli değil |
262,148 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Sorttbls.nlp |
Geçerli değil |
20,320 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Xjis.nlp |
Geçerli değil |
28,288 |
18-Dec-2007 |
21:05 |
Geçerli değil |
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 ve Windows Server 2008 ' in x64 sürümleri
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
Big5.nlp |
Geçerli değil |
66,728 |
18-Dec-2007 |
21:01 |
Geçerli değil |
Bopomofo.nlp |
Geçerli değil |
82,172 |
18-Dec-2007 |
21:01 |
Geçerli değil |
Ksc.nlp |
Geçerli değil |
116,756 |
18-Dec-2007 |
21:02 |
Geçerli değil |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
01-Oct-2008 |
22:25 |
x64 |
Normidna.nlp |
Geçerli değil |
59,342 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Normnfc.nlp |
Geçerli değil |
45,794 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Normnfd.nlp |
Geçerli değil |
39,284 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Normnfkc.nlp |
Geçerli değil |
66,384 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Normnfkd.nlp |
Geçerli değil |
60,294 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Prc.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Prcp.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Sortkey.nlp |
Geçerli değil |
262,148 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Sorttbls.nlp |
Geçerli değil |
20,320 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Xjis.nlp |
Geçerli değil |
28,288 |
18-Dec-2007 |
21:03 |
Geçerli değil |
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 |
Geçerli değil |
66,728 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Bopomofo.nlp |
Geçerli değil |
82,172 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Ksc.nlp |
Geçerli değil |
116,756 |
18-Dec-2007 |
21:04 |
Geçerli değil |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Geçerli değil |
59,342 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfc.nlp |
Geçerli değil |
45,794 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfd.nlp |
Geçerli değil |
39,284 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfkc.nlp |
Geçerli değil |
66,384 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfkd.nlp |
Geçerli değil |
60,294 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Prc.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Prcp.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Sortkey.nlp |
Geçerli değil |
262,148 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Sorttbls.nlp |
Geçerli değil |
20,320 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Xjis.nlp |
Geçerli değil |
28,288 |
18-Dec-2007 |
21:05 |
Geçerli değil |
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 ve Windows Server 2008 IA-64 sürümleri
Dosya adı |
Dosya sürümü |
Dosya boyutu |
Tarih |
Saat |
Platform |
---|---|---|---|---|---|
Big5.nlp |
Geçerli değil |
66,728 |
18-Dec-2007 |
21:06 |
Geçerli değil |
Bopomofo.nlp |
Geçerli değil |
82,172 |
18-Dec-2007 |
21:06 |
Geçerli değil |
Ksc.nlp |
Geçerli değil |
116,756 |
18-Dec-2007 |
21:06 |
Geçerli değil |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
01-Oct-2008 |
22:26 |
IA-64 |
Normidna.nlp |
Geçerli değil |
59,342 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Normnfc.nlp |
Geçerli değil |
45,794 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Normnfd.nlp |
Geçerli değil |
39,284 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Normnfkc.nlp |
Geçerli değil |
66,384 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Normnfkd.nlp |
Geçerli değil |
60,294 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Prc.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Prcp.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Sortkey.nlp |
Geçerli değil |
262,148 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Sorttbls.nlp |
Geçerli değil |
20,320 |
18-Dec-2007 |
21:08 |
Geçerli değil |
Xjis.nlp |
Geçerli değil |
28,288 |
18-Dec-2007 |
21:08 |
Geçerli değil |
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 |
Geçerli değil |
66,728 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Bopomofo.nlp |
Geçerli değil |
82,172 |
18-Dec-2007 |
21:03 |
Geçerli değil |
Ksc.nlp |
Geçerli değil |
116,756 |
18-Dec-2007 |
21:04 |
Geçerli değil |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Geçerli değil |
59,342 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfc.nlp |
Geçerli değil |
45,794 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfd.nlp |
Geçerli değil |
39,284 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfkc.nlp |
Geçerli değil |
66,384 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Normnfkd.nlp |
Geçerli değil |
60,294 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Prc.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Prcp.nlp |
Geçerli değil |
83,748 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Sortkey.nlp |
Geçerli değil |
262,148 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Sorttbls.nlp |
Geçerli değil |
20,320 |
18-Dec-2007 |
21:05 |
Geçerli değil |
Xjis.nlp |
Geçerli değil |
28,288 |
18-Dec-2007 |
21:05 |
Geçerli değil |
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 |
Geçici çözüm
Bu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın.
Yöntem 1
Uygulama kodu benzer örnek kod "Ek bilgi" bölümünde, aşağıdaki kod satırını bulun.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
Bu kod satırı aşağıdaki gibi değiştirin.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))
Yöntem 2
Bir .ini dosyasını dağıtın. Bunu yapmak için aşağıdaki kodu içeren bir dosya oluşturun.
[.NET Framework Debugging Control]AllowOptimize=0
Sorunlu modülü aynı .ini dosya adı, ancak yerine .dll uzantısı .ini uzantısını kullanır. Örneğin, "Daha fazla bilgi" bölümündeki örnek kod için .ini dosya Bug.ini dosya adı. Bug.ini dosya Bug.dll dosyasıyla aynı dizine yerleştirin.
Not: Bu yöntemin dezavantajı herhangi bir iyileştirme için olası performans etkisi olur. Modül önceden derlemek için yerel Görüntü Oluşturucu (Ngen.exe) kullanırsanız, bu yöntem geçerli değildir.
Yöntem 3
MethodImplOptions numaralandırma NoOptimization seçeneği seçerek MethodImplAttribute sınıfını kullanarak sorunlu yöntemlere uygulayın.
Not: Bu yöntem en iyi duruma getirme yöntemi her düzeyde yerel Görüntü Oluşturucu (Ngen.exe) ve JIT derleyicisi için devre dışı bırakır. Ne kadar performansı etkilenir, yönteme göre değişir.
Durum
Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Daha fazla bilgi
Sorunu yeniden oluşturma adımları
-
.NET Framework 3.5 SP1 tabanlı bir C++ uygulaması oluşturun.
-
Projeye bir .cpp dosyasına ekleyin, bu dosya Bug.cpp dosya adı ve Bug.cpp dosyasında aşağıdaki kodu yapıştırın.
#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);
}
};
} -
Bug.cpp dosyasını derlemek için aşağıdaki komutu çalıştırın:
cl/CLR /GL /O2 bug.cpp Visual c++/dll /out:bug.dll
-
İstemci proje olarak kullanılacak yeni Microsoft Visual C# projesi oluşturun.
-
Kod dosyası Test.cs dosyayı adlandırın ve sonra Test.cs dosyasında aşağıdaki kodu yapıştırın.
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);
}
}
} -
Test.cs dosyasını derlemek için aşağıdaki komutu çalıştırın:
CSC /r:bug.dll test.cs
-
Bildirim Test.exe dosyasına katıştırmak için aşağıdaki komutu çalıştırın:
MT.exe - nologo-bildirim bug.dll.manifest-outputresource:test.exe;1
-
Test.exe dosyasını çalıştırın.
Gerçek sonucu aşağıdaki gibi olduğunu görürsünüz:
1.33333333333333, 1.333333333333, 0Ancak, beklenen sonucu aşağıdaki gibidir:
1.33333333333333, 0, 0
Başvurular
Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
824684 Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması