狀況
在電腦上正在執行 Microsoft.NET Framework 3.5 Service Pack 1 (SP1),只是時間的 (JIT) 編譯器,原生映像產生器 (Ngen.exe) 使用 Mscorjit.dll 檔案的檔案可能會產生不正確的程式碼。因此,32 位元的 Managed c + + 應用程式可能會產生不正確的結果。
如果下列情況成立,就會發生這個問題︰-
結構或類別在原始程式碼中的具有少於四個純量種類且沒有 managed 的物件參考。
-
您可以使用 Cpblk 指令或 Initblk 指令。
注意在 64 位元應用程式不會發生這個問題。
原因
之所以發生這個問題,是因為.NET Framework 3.5 SP1 中的迴歸。
解決方案
Hotfix 資訊
支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 Hotfix 只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題的影響不會很嚴重,我們建議您等候含此 hotfix 的下一版軟體更新。
若要下載此 hotfix,從 MSDN 程式碼庫,請造訪下列 Microsoft 網站︰http://code.msdn.microsoft.com/KB957542 注意MSDN 程式碼庫顯示 hotfix 是可用的語言。如果看不到您所使用的語言,它是因為代碼庫資源頁面未提供該語言的支援。 注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰
http://support.microsoft.com/contactus/?ws=support注意如果您在 64 位元平台執行 32 位元應用程式,請套用 [64 位元版本,如果要解決這個問題的 hotfix。
先決條件
您必須套用此 hotfix 之後所安裝的.NET Framework 3.5 SP1。
重新啟動需求
您可能必須重新啟動電腦,如果正在使用中的任何更新的檔案。
Hotfix 取代資訊
此 hotfix 不會取代任何其他 hotfix。
檔案資訊
此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (UTC) 格式列出。當您檢視檔案資訊時,會將它轉換為本地時間。若要查看 UTC 與當地時間的時差,請在 [控制台] 中的日期和時間項目使用 [時區] 索引標籤。
Windows 2000、 Windows XP 和 Windows Server 2003,x86 版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
---|---|---|---|---|
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 和 Windows Server 2003,x64 版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
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 和 Windows Server 2003,ia-64 版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
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) 與 Windows Server 2008,x86 版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
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 |
不適用 |
66,728 |
18-Dec-2007 |
21:03 |
不適用 |
Bopomofo.nlp |
不適用 |
82,172 |
18-Dec-2007 |
21:03 |
不適用 |
Ksc.nlp |
不適用 |
116,756 |
18-Dec-2007 |
21:04 |
不適用 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
不適用 |
59,342 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfc.nlp |
不適用 |
45,794 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfd.nlp |
不適用 |
39,284 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfkc.nlp |
不適用 |
66,384 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfkd.nlp |
不適用 |
60,294 |
18-Dec-2007 |
21:05 |
不適用 |
Prc.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:05 |
不適用 |
Prcp.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:05 |
不適用 |
Sortkey.nlp |
不適用 |
262,148 |
18-Dec-2007 |
21:05 |
不適用 |
Sorttbls.nlp |
不適用 |
20,320 |
18-Dec-2007 |
21:05 |
不適用 |
Xjis.nlp |
不適用 |
28,288 |
18-Dec-2007 |
21:05 |
不適用 |
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 和 Windows Server 2008,x64 版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
Big5.nlp |
不適用 |
66,728 |
18-Dec-2007 |
21:01 |
不適用 |
Bopomofo.nlp |
不適用 |
82,172 |
18-Dec-2007 |
21:01 |
不適用 |
Ksc.nlp |
不適用 |
116,756 |
18-Dec-2007 |
21:02 |
不適用 |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
01-Oct-2008 |
22:25 |
x64 |
Normidna.nlp |
不適用 |
59,342 |
18-Dec-2007 |
21:03 |
不適用 |
Normnfc.nlp |
不適用 |
45,794 |
18-Dec-2007 |
21:03 |
不適用 |
Normnfd.nlp |
不適用 |
39,284 |
18-Dec-2007 |
21:03 |
不適用 |
Normnfkc.nlp |
不適用 |
66,384 |
18-Dec-2007 |
21:03 |
不適用 |
Normnfkd.nlp |
不適用 |
60,294 |
18-Dec-2007 |
21:03 |
不適用 |
Prc.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:03 |
不適用 |
Prcp.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:03 |
不適用 |
Sortkey.nlp |
不適用 |
262,148 |
18-Dec-2007 |
21:03 |
不適用 |
Sorttbls.nlp |
不適用 |
20,320 |
18-Dec-2007 |
21:03 |
不適用 |
Xjis.nlp |
不適用 |
28,288 |
18-Dec-2007 |
21:03 |
不適用 |
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 |
不適用 |
66,728 |
18-Dec-2007 |
21:03 |
不適用 |
Bopomofo.nlp |
不適用 |
82,172 |
18-Dec-2007 |
21:03 |
不適用 |
Ksc.nlp |
不適用 |
116,756 |
18-Dec-2007 |
21:04 |
不適用 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
不適用 |
59,342 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfc.nlp |
不適用 |
45,794 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfd.nlp |
不適用 |
39,284 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfkc.nlp |
不適用 |
66,384 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfkd.nlp |
不適用 |
60,294 |
18-Dec-2007 |
21:05 |
不適用 |
Prc.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:05 |
不適用 |
Prcp.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:05 |
不適用 |
Sortkey.nlp |
不適用 |
262,148 |
18-Dec-2007 |
21:05 |
不適用 |
Sorttbls.nlp |
不適用 |
20,320 |
18-Dec-2007 |
21:05 |
不適用 |
Xjis.nlp |
不適用 |
28,288 |
18-Dec-2007 |
21:05 |
不適用 |
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 和 Windows Server 2008,ia-64 版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
Big5.nlp |
不適用 |
66,728 |
18-Dec-2007 |
21:06 |
不適用 |
Bopomofo.nlp |
不適用 |
82,172 |
18-Dec-2007 |
21:06 |
不適用 |
Ksc.nlp |
不適用 |
116,756 |
18-Dec-2007 |
21:06 |
不適用 |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
01-Oct-2008 |
22:26 |
IA-64 |
Normidna.nlp |
不適用 |
59,342 |
18-Dec-2007 |
21:08 |
不適用 |
Normnfc.nlp |
不適用 |
45,794 |
18-Dec-2007 |
21:08 |
不適用 |
Normnfd.nlp |
不適用 |
39,284 |
18-Dec-2007 |
21:08 |
不適用 |
Normnfkc.nlp |
不適用 |
66,384 |
18-Dec-2007 |
21:08 |
不適用 |
Normnfkd.nlp |
不適用 |
60,294 |
18-Dec-2007 |
21:08 |
不適用 |
Prc.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:08 |
不適用 |
Prcp.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:08 |
不適用 |
Sortkey.nlp |
不適用 |
262,148 |
18-Dec-2007 |
21:08 |
不適用 |
Sorttbls.nlp |
不適用 |
20,320 |
18-Dec-2007 |
21:08 |
不適用 |
Xjis.nlp |
不適用 |
28,288 |
18-Dec-2007 |
21:08 |
不適用 |
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 |
不適用 |
66,728 |
18-Dec-2007 |
21:03 |
不適用 |
Bopomofo.nlp |
不適用 |
82,172 |
18-Dec-2007 |
21:03 |
不適用 |
Ksc.nlp |
不適用 |
116,756 |
18-Dec-2007 |
21:04 |
不適用 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
不適用 |
59,342 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfc.nlp |
不適用 |
45,794 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfd.nlp |
不適用 |
39,284 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfkc.nlp |
不適用 |
66,384 |
18-Dec-2007 |
21:05 |
不適用 |
Normnfkd.nlp |
不適用 |
60,294 |
18-Dec-2007 |
21:05 |
不適用 |
Prc.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:05 |
不適用 |
Prcp.nlp |
不適用 |
83,748 |
18-Dec-2007 |
21:05 |
不適用 |
Sortkey.nlp |
不適用 |
262,148 |
18-Dec-2007 |
21:05 |
不適用 |
Sorttbls.nlp |
不適用 |
20,320 |
18-Dec-2007 |
21:05 |
不適用 |
Xjis.nlp |
不適用 |
28,288 |
18-Dec-2007 |
21:05 |
不適用 |
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 |
因應措施
若要解決這個問題,請使用下列方法之一。
方法 1
如果應用程式程式碼類似的 < 其他資訊=""> 一節中的範例程式碼,找出下行程式碼。
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
變更這行程式碼如下所示。
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))
方法 2
部署.ini 檔案。若要這樣做,請建立包含下列的程式碼的檔案。
[.NET Framework Debugging Control]AllowOptimize=0
.Ini 檔案有問題的模組中,相同的名稱,但使用.ini 副檔名,而不是.dll 副檔名。例如,< 其他資訊=""> 一節中的範例程式碼中,命名的.ini 檔案名稱 Bug.ini 檔案。將 Bug.ini 檔案放在 Bug.dll 檔案所在的目錄中。
注意這個方法的缺點是沒有最佳化的潛在的效能影響。如果您使用原生映像產生器 (Ngen.exe) 先行編譯的模組時,這個方法不適用。方法 3
選擇性地套用NoOptimization選項的MethodImplOptions列舉型別到有問題的方法使用MethodImplAttribute類別。
注意這個方法會停用 JIT 編譯器,原生映像產生器 (Ngen.exe) 上每個方法層級的最佳化。效能受到影響的程度而異,視方法而定。狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
更多的資訊
如果要重現問題的步驟
-
建立 c + + 應用程式為基礎的.NET Framework 3.5 SP1。
-
.Cpp 檔加入至專案並命名這個檔案的 Bug.cpp 檔案,然後將下列程式碼貼入 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); } }; } -
若要編譯的 Bug.cpp 檔案,執行下列命令︰
cl /clr /GL /O2 bug.cpp /link /dll /out:bug.dll
-
建立新 Microsoft Visual C# 專案来做為用戶端專案。
-
Test.cs 檔案中,進行程式碼檔案名稱,然後將下列程式碼貼入 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); } } } -
若要編譯的 Test.cs 檔案,執行下列命令︰
csc /r:bug.dll test.cs
-
若要將資訊清單嵌入 Test.exe 檔案中,執行下列命令︰
mt.exe /nologo-資訊清單的 bug.dll.manifest-outputresource:test.exe;1
-
執行 Test.exe 檔案。
請注意,實際的結果,如下所示︰
1.33333333333333、 1.333333333333、 0不過,預期的結果如下所示︰
1.33333333333333,0 0
參考
如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
用來描述 Microsoft 軟體更新標準術語的編號 824684描述