當您編譯 Visual C++ 2010年專案包含 Atlcomcli.h 檔案時,出現錯誤訊息


狀況


請考慮下列情況:
  • 您必須包含 Atlcomcli.h 檔案的 Microsoft Visual C++ 2010年專案。
  • 您指定了 /J 編譯器選項,來定義專案中的 _CHAR_UNSIGNED 巨集。
  • 您編譯專案。
在這個案例中,您會收到下列錯誤訊息之一︰
  • 錯誤 C2338︰ 無法使用 /J 或 _CHAR_UNSIGNED 旗標已啟用編譯 CVarTypeInfo < char >
  • 錯誤 C2338︰ 無法使用 /J 或 _CHAR_UNSIGNED 旗標已啟用編譯 CVarTypeInfo < char * >
注意Visual C++ 2010年是 Microsoft Visual Studio 2010 」 的元件。

原因


因為不正確地設定為 [CHAR_UNSIGNED 巨集 Atlcomcli.h 檔案中的靜態判斷提示,就會發生這個問題。

解決方案


Visual Studio 2010 Service Pack 1 (SP1) 的解析度

如果您使用 Visual Studio 2010 SP1 時,請在以下的知識庫文件中安裝 hotfix 將會說明︰
2545588修正︰ 當您執行使用單數的值重新設定輸入的 iterator Visual C++ 2010年應用程式時,存取違規

Visual Studio 2010 的解析度

如果您使用 Visual Studio 2010,安裝下列 hotfix。

Hotfix 資訊

已經可以從 Microsoft 取得支援的 hotfix。不過,其旨在修正本文所述的問題。它只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題的影響不會很嚴重,我們建議您等候含此 hotfix 的下一版軟體更新。

若要立即解決這個問題,請連絡 Microsoft 客戶支援服務 」 取得 hotfix。如需 Microsoft 客戶支援服務電話號碼以及支援費用的相關資訊的完整清單,請造訪下列 Microsoft 網站︰注意 在特殊的情況下,如果 Microsoft 支援專業人員認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。收取支援費用會套用,如果有其他支援問題是,不能限定的特定更新程式。

先決條件

您必須套用此 hotfix 之後所安裝的 Visual Studio 2010。

重新啟動需求


如果沒有 Visual Studio 執行個體正在使用中的話,套用此 hotfix 之後不需要重新啟動電腦。

Hotfix 取代資訊


此 hotfix 不會取代任何其他 hotfix。

檔案資訊


此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (UTC) 格式列出。當您檢視檔案資訊時,會將它轉換為本地時間。若要查看 UTC 與當地時間的時差,請使用
時區
在索引標籤
日期和時間
在 [控制台] 中的項目。
檔案名稱檔案版本檔案大小日期時間平台
Atl100.dll10.0.30319.314158,53628-May-201007:55x64.pdb
Atl100.dll10.0.30319.314385,35228-May-201008:01IA-64
Atl100.dll10.0.30319.314138,05628-May-201008:07x86.pdb
Microsoft_vc100_atl_i64.pdb.msm163,84028-May-201006:57
Microsoft_vc100_atl_x64.pdb.msm87,04028-May-201006:59x64.pdb
Microsoft_vc100_atl_x86.pdb.msm80,89628-May-201007:00x86.pdb
Microsoft_vc100_crt_i64.pdb.msm802,81628-May-201006:57
Microsoft_vc100_crt_x64.pdb.msm568,32028-May-201006:59x64.pdb
Microsoft_vc100_crt_x86.pdb.msm556,54428-May-201007:00x86.pdb
Microsoft_vc100_debugcrt_i64.pdb.msm1,522,17628-May-201006:57
Microsoft_vc100_debugcrt_x64.pdb.msm831,48828-May-201006:58x64.pdb
Microsoft_vc100_debugcrt_x86.pdb.msm784,89628-May-201007:00x86.pdb
Microsoft_vc100_debugmfc_x64.pdb.msm6,876,67228-May-201006:58x64.pdb
Microsoft_vc100_debugmfc_x86.pdb.msm6,240,25628-May-201006:59x86.pdb
Microsoft_vc100_debugopenmp_i64.pdb.msm98,81628-May-201006:57
Microsoft_vc100_debugopenmp_x64.pdb.msm48,12828-May-201006:58x64.pdb
Microsoft_vc100_debugopenmp_x86.pdb.msm48,12828-May-201006:59x86.pdb
Microsoft_vc100_mfc_x64.pdb.msm5,287,93628-May-201006:58x64.pdb
Microsoft_vc100_mfc_x86.pdb.msm4,660,22428-May-201006:59x86.pdb
Microsoft_vc100_mfcloc_x64.pdb.msm135,68028-May-201006:58x64.pdb
Microsoft_vc100_mfcloc_x86.pdb.msm135,68028-May-201006:59x86.pdb
Microsoft_vc100_openmp_i64.pdb.msm6553628-May-201006:57
Microsoft_vc100_openmp_x64.pdb.msm39,42428-May-201006:57x64.pdb
Microsoft_vc100_openmp_x86.pdb.msm37,88828-May-201006:59x86.pdb
Crtversion.h59127-May-201021:11
Atl100.i64.pdb4,018,17627-May-201022:26
Atl100.x64.pdb3,788,80027-May-201022:34x64.pdb
Atl100.x86.pdb3,854,33627-May-201022:36x86.pdb
Mfc100.x64.pdb27,357,18428-May-201000:20x64.pdb
Mfc100.x86.pdb24,162,30428-May-201001:09x86.pdb
Mfc100d.x64.pdb29,995,00828-May-201000:19x64.pdb
Mfc100d.x86.pdb27,619,32828-May-201001:08x86.pdb
Mfc100u.x64.pdb27,504,64028-May-201000:20x64.pdb
Mfc100u.x86.pdb24,350,72028-May-201001:09x86.pdb
Mfc100ud.x64.pdb30,257,15228-May-201000:19x64.pdb
Mfc100ud.x86.pdb27,914,24028-May-201001:08x86.pdb
Mfcm100.x64.pdb3,813,37628-May-201000:20x64.pdb
Mfcm100.x86.pdb3,903,48828-May-201001:11x86.pdb
Mfcm100d.x64.pdb3,944,44828-May-201000:20x64.pdb
Mfcm100d.x86.pdb3,960,83228-May-201001:11x86.pdb
Mfcm100u.x64.pdb3,829,76028-May-201000:20x64.pdb
Mfcm100u.x86.pdb3,919,87228-May-201001:11x86.pdb
Mfcm100ud.x64.pdb3,960,83228-May-201000:20x64.pdb
Mfcm100ud.x86.pdb3,977,21628-May-201001:11x86.pdb
Msvcp100.i64.pdb3,312,64027-May-201022:25
Msvcp100.x64.pdb4,049,92027-May-201022:33x64.pdb
Msvcp100.x86.pdb3,746,81627-May-201022:36x86.pdb
Msvcp100d.i64.pdb3,869,69627-May-201022:25
Msvcp100d.x64.pdb4,959,23227-May-201022:33x64.pdb
Msvcp100d.x86.pdb4,369,40827-May-201022:36x86.pdb
Msvcr100.i64.pdb5,549,05627-May-201022:25
Msvcr100.x64.pdb6,769,66427-May-201022:33x64.pdb
Msvcr100.x86.pdb8,866,81627-May-201022:35x86.pdb
Msvcr100d.i64.pdb6,024,19227-May-201022:25
Msvcr100d.x64.pdb8,375,29627-May-201022:33x64.pdb
Msvcr100d.x86.pdb7,891,96827-May-201022:36x86.pdb
Vcomp100.i64.pdb1,634,30427-May-201023:30
Vcomp100.x64.pdb1,617,92028-May-201000:21x64.pdb
Vcomp100.x86.pdb1,699,84028-May-201001:11x86.pdb
Vcomp100d.i64.pdb1,757,18427-May-201023:30
Vcomp100d.x64.pdb1,757,18428-May-201000:21x64.pdb
Vcomp100d.x86.pdb1,798,14428-May-201001:11x86.pdb
Src.crtversion.h75227-May-201021:54
Atl.lib1440027-May-201022:11x86.pdb
Atl.lib16,17627-May-201022:05x86.pdb
Atl.lib13,46827-May-201022:03x86.pdb
Atlbuild.h57527-May-201021:11
Atlcomcli.h73,91326-May-201020:56
Atlconv.cpp53226-May-201020:56
Atls.lib1,509,80427-May-201022:11x86.pdb
Atls.lib1,413,15827-May-201022:05x86.pdb
Atls.lib1,209,62227-May-201022:03x86.pdb
Atlsd.lib1,836,02227-May-201022:11x86.pdb
Atlsd.lib2,091,82627-May-201022:05x86.pdb
Atlsd.lib1,664,75227-May-201022:03x86.pdb
Libcmt.lib16,845,14627-May-201022:10x86.pdb
Libcmt.lib13,210,11427-May-201022:04IA-64
Libcmt.lib13,210,11427-May-201022:04x86.pdb
Libcmt.lib18,194,11427-May-201022:02x64.pdb
Libcmt.lib18,194,11427-May-201022:02x86.pdb
Libcmtd.lib18,567,76827-May-201022:10x86.pdb
Libcmtd.lib16,919,41827-May-201022:04IA-64
Libcmtd.lib16,919,41827-May-201022:04x86.pdb
Libcmtd.lib21,006,47827-May-201022:02x64.pdb
Libcmtd.lib21,006,47827-May-201022:02x86.pdb
Libcpmt.lib8,104,96427-May-201022:10
Libcpmt1.lib8,449,77027-May-201022:10
Libcpmt1.lib9,938,39227-May-201022:02x64.pdb
Libcpmt1.lib9,400,70627-May-201022:04IA-64
Libcpmt.lib9,477,43627-May-201022:02x64.pdb
Libcpmt.lib8,864,05427-May-201022:04IA-64
Libcpmtd.lib8,846,03827-May-201022:10
Libcpmtd0.lib8,110,11627-May-201022:10
Libcpmtd0.lib10,517,02627-May-201022:02x64.pdb
Libcpmtd0.lib10,134,55027-May-201022:04IA-64
Libcpmtd1.lib8,632,61827-May-201022:10
Libcpmtd1.lib11,331,06227-May-201022:02x64.pdb
Libcpmtd1.lib11,080,72627-May-201022:04IA-64
Libcpmtd.lib11,655,65427-May-201022:02x64.pdb
Libcpmtd.lib11,500,47027-May-201022:04IA-64
Mfc100.lib5,502,92627-May-201023:19x64.pdb
Mfc100.lib5,497,94227-May-201023:47x86.pdb
Mfc100d.lib6,341,27627-May-201023:20x64.pdb
Mfc100d.lib6,327,69027-May-201023:48x86.pdb
Mfc100u.lib6,948,86227-May-201023:21x64.pdb
Mfc100u.lib7,034,80227-May-201023:49x86.pdb
Mfc100ud.lib7,997,37627-May-201023:21x64.pdb
Mfc100ud.lib8,070,92827-May-201023:49x86.pdb
Mfcm100.lib43,10427-May-201023:21x64.pdb
Mfcm100.lib41,05827-May-201023:50x86.pdb
Mfcm100d.lib46,20027-May-201023:21x64.pdb
Mfcm100d.lib44,61627-May-201023:50x86.pdb
Mfcm100u.lib44,56827-May-201023:21x64.pdb
Mfcm100u.lib42,47427-May-201023:50x86.pdb
Mfcm100ud.lib47,66227-May-201023:21x64.pdb
Mfcm100ud.lib46,03627-May-201023:50x86.pdb
Mfcs100.lib1,100,55427-May-201023:16x86.pdb
Mfcs100.lib1,096,07227-May-201023:46x86.pdb
Mfcs100d.lib1,090,29227-May-201023:16x64.pdb
Mfcs100d.lib1,063,42027-May-201023:46x86.pdb
Mfcs100u.lib1,117,89627-May-201023:17x64.pdb
Mfcs100u.lib1,113,41627-May-201023:47x86.pdb
Mfcs100ud.lib1,111,37427-May-201023:16x86.pdb
Mfcs100ud.lib1,083,21027-May-201023:46x86.pdb
Msvcmrt.lib1,716,69627-May-201022:10x86.pdb
Msvcmrt.lib1,917,11427-May-201022:02x64.pdb
Msvcmrt.lib1,917,11427-May-201022:02x86.pdb
Msvcmrt.lib2,088,53027-May-201022:04IA-64
Msvcmrt.lib2,088,53027-May-201022:04x86.pdb
Msvcmrtd.lib1,846,03227-May-201022:11x86.pdb
Msvcmrtd.lib2,067,40227-May-201022:02x64.pdb
Msvcmrtd.lib2,067,40227-May-201022:02x86.pdb
Msvcmrtd.lib2,249,63627-May-201022:04IA-64
Msvcmrtd.lib2,249,63627-May-201022:04x86.pdb
Msvcprt.lib949,24427-May-201022:10x86.pdb
Msvcprt.lib1,151,78227-May-201022:04IA-64
Msvcprt.lib1,151,78227-May-201022:04x86.pdb
Msvcprt.lib964,48427-May-201022:02x64.pdb
Msvcprt.lib964,48427-May-201022:02x86.pdb
Msvcprtd.lib964,37227-May-201022:10x86.pdb
Msvcprtd.lib1,172,96227-May-201022:04IA-64
Msvcprtd.lib1,172,96227-May-201022:04x86.pdb
Msvcprtd.lib980,62627-May-201022:02x64.pdb
Msvcprtd.lib980,62627-May-201022:02x86.pdb
Msvcrt.lib1,379,40427-May-201022:10x86.pdb
Msvcrt.lib1,527,02027-May-201022:04IA-64
Msvcrt.lib1,527,02027-May-201022:04x86.pdb
Msvcrt.lib1,396,18227-May-201022:02x64.pdb
Msvcrt.lib1,396,18227-May-201022:02x86.pdb
Msvcrtd.lib1,400,88227-May-201022:10x86.pdb
Msvcrtd.lib1,580,52827-May-201022:04IA-64
Msvcrtd.lib1,580,52827-May-201022:04x86.pdb
Msvcrtd.lib1,423,13227-May-201022:02x64.pdb
Msvcrtd.lib1,423,13227-May-201022:02x86.pdb
Msvcurt.lib31,719,96027-May-201022:11x86.pdb
Msvcurt.lib32,376,80227-May-201022:02x64.pdb
Msvcurt.lib32,376,80227-May-201022:02x86.pdb
Msvcurt.lib32,617,58027-May-201022:04IA-64
Msvcurt.lib32,617,58027-May-201022:04x86.pdb
Msvcurtd.lib33,912,24027-May-201022:11x86.pdb
Msvcurtd.lib34,532,60427-May-201022:02x64.pdb
Msvcurtd.lib34,532,60427-May-201022:02x86.pdb
Msvcurtd.lib34,813,24427-May-201022:05IA-64
Msvcurtd.lib34,813,24427-May-201022:05x86.pdb
Nafxcw.lib61,602,64427-May-201023:48x86.pdb
Nafxcw.lib73,900,88227-May-201023:20x86.pdb
Nafxcwd.lib57,192,09427-May-201023:48x86.pdb
Nafxcwd.lib72,756,64627-May-201023:19x86.pdb
Ptrustm.dll562,98627-May-201022:04IA-64
Ptrustm.dll562,98627-May-201022:04x86.pdb
Ptrustm.lib424,75627-May-201022:10x86.pdb
Ptrustm.lib475,99827-May-201022:02x64.pdb
Ptrustm.lib475,99827-May-201022:02x86.pdb
Ptrustmd.dll570,62427-May-201022:04IA-64
Ptrustmd.dll570,62427-May-201022:04x86.pdb
Ptrustmd.lib432,07027-May-201022:11x86.pdb
Ptrustmd.lib483,64827-May-201022:02x64.pdb
Ptrustmd.lib483,64827-May-201022:02x86.pdb
Ptrustu.lib322,31427-May-201022:10x86.pdb
Ptrustu.lib333,58227-May-201022:02x64.pdb
Ptrustu.lib333,58227-May-201022:02x86.pdb
Ptrustu.lib391,17627-May-201022:04IA-64
Ptrustu.lib391,17627-May-201022:04x86.pdb
Ptrustud.lib327,93227-May-201022:11x86.pdb
Ptrustud.lib339,31427-May-201022:02x64.pdb
Ptrustud.lib339,31427-May-201022:02x86.pdb
Ptrustud.lib397,44027-May-201022:04IA-64
Ptrustud.lib397,44027-May-201022:04x86.pdb
Uafxcw.lib62,774,67627-May-201023:50x86.pdb
Uafxcw.lib75,017,13227-May-201023:21x86.pdb
Uafxcwd.lib58,910,07827-May-201023:49x86.pdb
Uafxcwd.lib74,402,66227-May-201023:21x86.pdb
Vcomp.lib28,58027-May-201023:54x86.pdb
Vcomp.lib28,00427-May-201023:22x86.pdb
Vcomp.lib33,33427-May-201023:06x86.pdb
Vcompd.dll28,13027-May-201023:22x86.pdb
Vcompd.lib28,68627-May-201023:54x86.pdb
Vcompd.lib33,46227-May-201023:06x86.pdb
Mfc100.dll10.0.30319.3145,493,57628-May-201007:55x64.pdb
Mfc100.dll10.0.30319.3144,342,08828-May-201008:07x86.pdb
Mfc100chs.dll10.0.30319.31436,17628-May-201007:55x64.pdb
Mfc100chs.dll10.0.30319.31436,17628-May-201008:07x86.pdb
Mfc100cht.dll10.0.30319.31436,17628-May-201007:55x64.pdb
Mfc100cht.dll10.0.30319.31436,17628-May-201008:07x86.pdb
Mfc100d.dll10.0.30319.3146,926,16029-May-201022:57x86.pdb
Mfc100d.dll10.0.30319.3148,955,21629-May-201022:57x64.pdb
Mfc100deu.dll10.0.30319.31464,33628-May-201007:55x64.pdb
Mfc100deu.dll10.0.30319.31464,33628-May-201008:07x86.pdb
Mfc100enu.dll10.0.30319.31455,12028-May-201007:55x64.pdb
Mfc100enu.dll10.0.30319.31455,12028-May-201008:07x86.pdb
Mfc100esn.dll10.0.30319.31463,82428-May-201007:55x64.pdb
Mfc100esn.dll10.0.30319.31463,82428-May-201008:07x86.pdb
Mfc100fra.dll10.0.30319.31464,33628-May-201007:55x64.pdb
Mfc100fra.dll10.0.30319.31464,33628-May-201008:07x86.pdb
Mfc100ita.dll10.0.30319.31462,28828-May-201007:55x64.pdb
Mfc100ita.dll10.0.30319.31462,28828-May-201008:07x86.pdb
Mfc100jpn.dll10.0.30319.31443,85628-May-201007:55x64.pdb
Mfc100jpn.dll10.0.30319.31443,85628-May-201008:07x86.pdb
Mfc100kor.dll10.0.30319.31443,34428-May-201007:55x64.pdb
Mfc100kor.dll10.0.30319.31443,34428-May-201008:07x86.pdb
Mfc100rus.dll10.0.30319.31460,75228-May-201007:55x64.pdb
Mfc100rus.dll10.0.30319.31460,75228-May-201008:07x86.pdb
Mfc100u.dll10.0.30319.3145,522,76828-May-201007:55x64.pdb
Mfc100u.dll10.0.30319.3144,368,72028-May-201008:07x86.pdb
Mfc100ud.dll10.0.30319.3146,994,25629-May-201022:57x86.pdb
Mfc100ud.dll10.0.30319.3149,030,99229-May-201022:57x64.pdb
Mfcm100.dll10.0.30319.31491,47228-May-201007:55x64.pdb
Mfcm100.dll10.0.30319.31480,20828-May-201008:07x86.pdb
Mfcm100d.dll10.0.30319.314103,24829-May-201022:57x86.pdb
Mfcm100d.dll10.0.30319.314118,60829-May-201022:57x64.pdb
Mfcm100u.dll10.0.30319.31491,47228-May-201007:55x64.pdb
Mfcm100u.dll10.0.30319.31480,72028-May-201008:07x86.pdb
Mfcm100ud.dll10.0.30319.314104,78429-May-201022:57x86.pdb
Mfcm100ud.dll10.0.30319.314120,14429-May-201022:57x64.pdb
Mfcmifc80u.dll10.0.30319.31413,13629-May-201022:57x86.pdb
Msvcp100.dll10.0.30319.314608,08028-May-201007:55x64.pdb
Msvcp100.dll10.0.30319.314966,48028-May-201008:01IA-64
Msvcp100.dll10.0.30319.314421,20028-May-201008:07x86.pdb
Msvcp100d.dll10.0.30319.3141,014,09629-May-201022:57x64.pdb
Msvcp100d.dll10.0.30319.3141,978,70429-May-201022:57IA-64
Msvcp100d.dll10.0.30319.314743,24829-May-201022:57x86.pdb
Msvcr100.dll10.0.30319.314827,72828-May-201007:55x64.pdb
Msvcr100.dll10.0.30319.3141,499,47228-May-201008:01IA-64
Msvcr100.dll10.0.30319.314770,38428-May-201008:07x86.pdb
Msvcr100d.dll10.0.30319.3141,498,96029-May-201022:57x86.pdb
Msvcr100d.dll10.0.30319.3141,858,89629-May-201022:57x64.pdb
Msvcr100d.dll10.0.30319.3143,764,04829-May-201022:57IA-64
Vcomp100.dll10.0.30319.31457,16828-May-201007:55x64.pdb
Vcomp100.dll10.0.30319.314143,18428-May-201008:01IA-64
Vcomp100.dll10.0.30319.31451,02428-May-201008:07x86.pdb
Vcomp100d.dll10.0.30319.314106,83229-May-201022:57x64.pdb
Vcomp100d.dll10.0.30319.314316,75229-May-201022:57IA-64
Vcomp100d.dll10.0.30319.31487,88829-May-201022:57x86.pdb
Vcomp100ui.dll10.0.30319.31410,06429-May-201022:57x86.pdb
Vcomp100ui.dll10.0.30319.31410,57629-May-201022:57x86.pdb
Vcomp100ui.dll10.0.30319.31411,60029-May-201022:57x86.pdb
Vcomp100ui.dll10.0.30319.3149,55229-May-201022:57x86.pdb
Vcredist_ia64.exe10.0.30319.3143,117,40029-May-201001:40x86.pdb
Vcredist_x64.pdb.exe10.0.30319.31410,274,13629-May-201001:34x86.pdb
Vcredist_x86.pdb.exe10.0.30319.3149,033,04829-May-201001:46x86.pdb

因應措施


若要解決這個問題,請依照下列這些 pragma 指示詞,以包含的 Atlcomcli.h 檔案︰
#pragma push_macro("ATLSTATIC_ASSERT")#undef ATLSTATIC_ASSERT
#define ATLSTATIC_ASSERT(x,y)
#include <atlcomcli.h>
#undef ATLSTATIC_ASSERT
#pragma pop_macro("ATLSTATIC_ASSERT")

狀態


Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。