1

Windows Server 2012でVisual Studio 2015をインストールしました。これでVC++ 2015でVisual Studio C++ 6ベースの作業プロジェクトをビルドする必要がありましたが、さまざまなエラーと警告が表示されます。Visual Studio 2015 for Visual Studio 6コード互換性

1>------ Build started: Project: Exewrap, Configuration: Debug Win32 
------ 1> Pewrap.cpp 1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h(38): warning C4996: 'MBCS_Support_Deprecated_In_MFC': MBCS support in MFC is deprecated and may be removed in a future version of MFC. 1> C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h(33): note: see declaration of 'MBCS_Support_Deprecated_In_MFC' 1> _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) 1>c:\muazzam\exewrap\Pe.h(17): warning C4200: nonstandard extension used: zero-sized array in struct/union 1> c:\muazzam\exewrap\Pe.h(17): note: Cannot generate copy-ctor or copy-assignment operator when UDT contains a zero-sized array 1>Pewrap.cpp(291): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h(205): note: see declaration of 'fopen' 1>Pewrap.cpp(517): error C2065: 'i': undeclared identifier 1>Pewrap.cpp(546): error C2065: 'i': undeclared identifier 1>Pewrap.cpp(551): error C2065: 'i': undeclared identifier 1>Pewrap.cpp(361): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: 
_stricmp. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: see declaration of 'stricmp' 1>Pewrap.cpp(362): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use 
_CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(364): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use 
_CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(365): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: see declaration of 'stricmp' 1>Pewrap.cpp(366): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(368): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(369): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: see declaration of 'stricmp' 1>Pewrap.cpp(370): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use 
_CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(372): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use 
_CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(403): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(119): note: see declaration of 'strcpy' 1>Pewrap.cpp(409): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(410): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(411): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(412): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(346): note: see declaration of 'strncpy' 1>Pewrap.cpp(480): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(119): note: see declaration of 'strcpy' 1>Pewrap.cpp(494): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(119): note: see declaration of 'strcpy' 1>Pewrap.cpp(566): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h(205): note: see declaration of 'fopen' 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

VC++ 6の構成マネージャーでオプションが表示されませんでした。

私はと考えていますが、他の設定オプションがあるかもしれませんが、それについてはあまりよく分かりません。誰かがそれを助けることができるかどうか教えてください。

さらに、私は最新のバージョンに適合するものでなければならないVC++ 6コードをアップグレードするために、どのように再利用コードに持っており、AndroidとiOSの携帯電話用の

をVSメーカー2015クロスプラットフォームIDEを使用してアプリケーションを構築しますVC++の一方thisショー:

のVisual Studio 2012およびVisual Studio 2013は、Visual C++ 6で構築された アプリケーションのデバッグをサポートしていません。これらのアプリケーションをデバッグするには、 以前のバージョンのVisual Studioを使用します。

プロジェクトをVC++ 6からVC++ 2010にアップグレードした後、上位バージョンのプロジェクトをビルドするか直接的な方法がありますか?

更新:エラーが来ているコードは次のとおりです。

bool Pewrap::Process(PPROTECTIONDETAIL pDetail) 
{ 
    LPVOID pPosition = NULL; 
    LPVOID pImportBegin = NULL; 
    DWORD dPosition = 0; 
    DWORD dImportRva = 0; 
    USERDATA SavedInfo; 
    PIMAGE_IMPORT_DESCRIPTOR pImportDesc; 
    PIMAGE_IMPORT_BY_NAME pImpByName; 
    DWORD * ThunkPtr; 
    PSIZEINFO pSize=NULL; 
    PROTECTEDINFO ProtInfo; 

    memset(&SavedInfo,0,sizeof(USERDATA)); 
    pResBase = 0; 
    if(Loaded == true) 
    { 
     CloseFile(); 
    } 
    if(Loaded == false) 
    { 
     if(LoadFile(EXTRASIZE)==false) 
     { 
      return false; 
     } 
    } 
    if(pDetail->ProtType == PROTECTION_STRONG) 
    { 
     UseVGCrypt = 1; 
     SavedInfo.ProtType = PROTECTION_STRONG; 
    } 
    else 
    { 
     UseVGCrypt = 0; 
     SavedInfo.ProtType = PROTECTION_MEDIUM; 
    } 

    unsigned char ProdId[PROD_ID_LEN]; 
    memset(ProdId,0,sizeof(ProdId)); 

    if(GetProtectedInfo(pDetail->Destination,&ProtInfo)==false) 
    { 
     GenRsaPrime((DIGIT_T*)ProdId,MOD_SIZE); 
     ProdId[0]= ProdId[0] & RSA_MESSAGE_HIGHBIT_MASK; // needed for rsa algorithm. 

    } 
    else 
    { 
     memcpy(ProdId,ProtInfo.prodid,PROD_ID_LEN); 
     if(stricmp(pDetail->Author,"None")==0) 
      strncpy(pDetail->Author,ProtInfo.Author,sizeof(pDetail->Author)); 
     else 
      strncpy(ProtInfo.Author,pDetail->Author,sizeof(ProtInfo.Author)); 
     if(stricmp(pDetail->Title,"None")==0) 
      strncpy(pDetail->Title,ProtInfo.Title,sizeof(pDetail->Title)); 
     else 
      strncpy(ProtInfo.Title,pDetail->Title,sizeof(ProtInfo.Title)); 
     if(stricmp(pDetail->PubDate,"None")==0) 
      strncpy(pDetail->PubDate,ProtInfo.PublishDate,sizeof(pDetail->PubDate)); 
     else 
      strncpy(ProtInfo.PublishDate,pDetail->PubDate,sizeof(ProtInfo.PublishDate)); 
    } 

    SetProtectedInfo(&ProtInfo,pDetail,ProdId); 

// GenRsaPrime((DIGIT_T*)ProdId,MOD_SIZE); 
// ProdId[0]= ProdId[0] & RSA_MESSAGE_HIGHBIT_MASK; // needed for rsa algorithm. 


    memcpy(Key,ProdId,PROD_ID_LEN); 

    if(pDetail->TestMode == FALSE) 
    { 
     RSACTX pubctx,prictx; 
     SavedInfo.TestMode = 0; 
     GetRsaCtx(&pubctx,(char*)pubcrykey,0); 

     RsaCrypt(&pubctx,(char*)ProdId,sizeof(ProdId)); 
     memcpy(SavedInfo.ProductId,ProdId,PROD_ID_LEN); 


    } 
    else 
    { 
     SavedInfo.TestMode = 1; 
     memcpy(SavedInfo.ProductId,ProdId,PROD_ID_LEN); 
    } 

    memset(pDetail->ProdId,0,sizeof(pDetail->ProdId)); 
    if(pDetail->TestMode == TRUE) 
    { 
     strcpy(pDetail->ProdId,"None"); 
    } 
    else 
    { 
     BinToHex((char*)SavedInfo.ProductId,PROD_ID_LEN,pDetail->ProdId); 
    } 
    strncpy(SavedInfo.Author,pDetail->Author,sizeof(SavedInfo.Author)-1); 
    strncpy(SavedInfo.Title,pDetail->Title,sizeof(SavedInfo.Title)-1); 
    strncpy(SavedInfo.PublishDate,pDetail->PubDate,sizeof(SavedInfo.PublishDate)-1); 
    strncpy(SavedInfo.RegUrl,pDetail->RegUrl,sizeof(SavedInfo.RegUrl)-1); 
    if(pDetail->FreeWare == TRUE) 
    { 
     SavedInfo.FreeWare = 1; 
    } 
    else 
    { 
     SavedInfo.FreeWare = 0; 
    } 

    if(UseVGCrypt) 
    { 
     VGInit(&ctx,Key,KEYLEN); 
    } 

    PIMAGE_SECTION_HEADER pSecHdr = GetLastSection(); 
    DWORD align=pImage->OptionalHeader.SectionAlignment; 

    if(Length < (pSecHdr->PointerToRawData+pSecHdr->SizeOfRawData)) 
    { 
     AfxMessageBox("Actual File Length is less than What is said in Header.\n" 
      "The File Might be corrupt."); 
     return false; 
    } 

    if(Length > (pSecHdr->PointerToRawData+pSecHdr->SizeOfRawData)) 
    { 
     DWORD Size = Length - (pSecHdr->PointerToRawData+pSecHdr->SizeOfRawData); 
     if(pSecHdr->Misc.VirtualSize < (pSecHdr->SizeOfRawData+Size)) 
     { 
      pSecHdr->Misc.VirtualSize=pSecHdr->SizeOfRawData+Size; 
      pSecHdr->Misc.VirtualSize= ((pSecHdr->Misc.VirtualSize/align) * align) + align; 
      pImage->OptionalHeader.SizeOfImage=pSecHdr->VirtualAddress+pSecHdr->Misc.VirtualSize; 
     } 
     pSecHdr->SizeOfRawData += Size; 
    } 

    pPosition = GetWritePointer(); 
    if(pPosition == NULL) 
     return false; 
    dPosition = pSecHdr->VirtualAddress + pSecHdr->SizeOfRawData; 

    memcpy((char*)pPosition,asmStub,sizeof(asmStub)); 
    pPosition = ADDPTR(LPVOID,pPosition,sizeof(asmStub)); 

    pSize = (PSIZEINFO)pPosition; 

    pPosition = ADDPTR(LPVOID,pPosition,sizeof(SIZEINFO)); 
    dPosition += sizeof(asmStub)+sizeof(SIZEINFO); 

    pImportBegin = pPosition; 

    IMAGE_DATA_DIRECTORY NullDirectory = { 0,0 }; 
    SavedInfo.ImportDataDirectory = pImage->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]; 
    SavedInfo.TlsDataDirectory = pImage->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS]; 
    SavedInfo.BoundImportDirectory = pImage->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT]; 

    pImage->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS] = NullDirectory; 
    pImage->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT] = NullDirectory; 

    pImportDesc =(PIMAGE_IMPORT_DESCRIPTOR) pPosition; 
    pImportDesc->ForwarderChain = 0; 
    pImportDesc->TimeDateStamp = 0; 

    dPosition+= sizeof(IMAGE_IMPORT_DESCRIPTOR)*2; 
    pImportDesc->Name = dPosition ; 

    pPosition = ADDPTR(LPVOID,pPosition,(sizeof(IMAGE_IMPORT_DESCRIPTOR) *2)); 
    strcpy((char*)pPosition,KERNEL32); 
    pPosition = ADDPTR(LPVOID,pPosition,sizeof(KERNEL32)); 
    dPosition+=sizeof(KERNEL32); 

    pImportDesc->FirstThunk = dPosition; 
    ThunkPtr = (DWORD*) pPosition; 

    pPosition = ADDPTR(LPVOID,pPosition,(NO_OF_FUNCTIONS +1)* sizeof(IMAGE_THUNK_DATA)); 
    dPosition += ((NO_OF_FUNCTIONS +1)* sizeof(IMAGE_THUNK_DATA)); 

    for(int i=0;i<NO_OF_FUNCTIONS;i++) 
    { 
     pImpByName = (PIMAGE_IMPORT_BY_NAME)pPosition; 
     pImpByName->Hint=0; 
     strcpy((char*)pImpByName->Name,FunctionArray[i]); 
     *ThunkPtr = dPosition; 
     ThunkPtr++; 
     pPosition = ADDPTR(LPVOID,pPosition,(sizeof(WORD) + strlen(FunctionArray[i])+1)); 
     dPosition += (sizeof(WORD) + strlen(FunctionArray[i])+1); 
    } 

    *ThunkPtr = 0; 
    pImportDesc++; 
    memset(pImportDesc,0,sizeof(IMAGE_IMPORT_DESCRIPTOR)); 

    dImportRva = pSecHdr->VirtualAddress + pSecHdr->SizeOfRawData + SUBPTR(DWORD,pImportBegin,GetWritePointer()); 

    DWORD ImportSize = SUBPTR(DWORD,pPosition,pImportBegin); 
    pImage->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size = ImportSize; 
    pImage->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress = dImportRva; 

    SavedInfo.OriginalEntryPoint = pImage->OptionalHeader.AddressOfEntryPoint; 

    pImage->OptionalHeader.AddressOfEntryPoint = pSecHdr->VirtualAddress + pSecHdr->SizeOfRawData; 

    PIMAGE_SECTION_HEADER pSecHdrTmp; 
    pSecHdrTmp = pImage->SectionHeader; 
    for(i=0;i<pImage->FileHeader.NumberOfSections;i++) 
    { 
     pSecHdrTmp->Characteristics = 0xe0000060; 
     pSecHdrTmp++; 
    } 

    DWORD IncreasedSize = SUBPTR(DWORD,pPosition,GetWritePointer()); 
    DWORD ExtendedMapSize = IncreasedSize; 

    pSize->ImportDataSize = ImportSize; 
    pSize->UserDataSize = sizeof(USERDATA); 
    pSize->DllDataSize = sizeof(rawData); 

    IncreasedSize+= pSize->UserDataSize; 
    IncreasedSize+= pSize->DllDataSize; 

    IncreasedSize+= sizeof(PROTECTEDINFO); 


    if(pSecHdr->Misc.VirtualSize < (pSecHdr->SizeOfRawData+IncreasedSize)) 
    { 
     pSecHdr->Misc.VirtualSize=pSecHdr->SizeOfRawData+IncreasedSize; 
     pSecHdr->Misc.VirtualSize= ((pSecHdr->Misc.VirtualSize/align) * align) + align; 
     pImage->OptionalHeader.SizeOfImage=pSecHdr->VirtualAddress+pSecHdr->Misc.VirtualSize; 
    } 

    pSecHdr->SizeOfRawData += IncreasedSize; 
    PIMAGE_SECTION_HEADER pEncSecHdr = pImage->SectionHeader; 

    for(i=0;i<pImage->FileHeader.NumberOfSections;i++) 
    { 
     if(CanEncryptSection(pEncSecHdr)) 
     { 
      EncryptSection(pEncSecHdr); 
      SavedInfo.EncryptedSections = SavedInfo.EncryptedSections | (0x80000000 >> i); 
     } 
     pEncSecHdr++; 
    } 

    if(CanEncryptResourceSection()) 
    { 
     EncryptResourceSection(); 
     SavedInfo.ResourceEncrypted = RESOURCE_IS_INCRYPTED; 
    } 

// DWORD temp = MapSize; 
// MapSize = Length + IncreasedSize; 
// SaveCopy("out.exe"); 

    FILE * f=fopen((LPCTSTR)pDetail->Destination,"wb"); 
    if(f==NULL) 
    { 
     CString msg; 
     msg.Format("Could not open %s for output",pDetail->Destination); 
     AfxMessageBox(msg); 
     return false; 
    } 
    fwrite((char*)pBase,Length+ExtendedMapSize,1,f); 

    DWORD Temp = UseVGCrypt = 0; 
    memcpy(Key,GlobalKey,KEYLEN); 
    EncryptData(&SavedInfo,sizeof(USERDATA)); 
    UseVGCrypt = Temp; 

    fwrite((char*)&SavedInfo,sizeof(USERDATA),1,f); 
    unsigned char * rd = new unsigned char[sizeof(rawData)]; 
    memcpy(rd,rawData,sizeof(rawData)); 
    CryptRawData(rd,sizeof(rawData)); 
    fwrite(rd,sizeof(rawData),1,f); 
    delete rd; 

    fwrite(&ProtInfo,sizeof(ProtInfo),1,f); 

    fclose(f); 

    return true; 

} 
+0

変更なし?かなり。言語は変わる。誰かがメンテナンスを無視し、今価格を支払う。 – TomTom

+0

なぜビジュアルスタジオ2015でビルドする必要がありますか? Visual C++ 6を実行可能なVMにインストールするだけです。 – zeromus

+0

@zeromus VS 2015を使用してクロスプラットフォームアプリケーションを構築する必要があります –

答えて

0

ソリューションエクスプローラで選択したプロジェクトを右クリック - [プロパティ]を。 C/C++>プリプロセッサ。

設定(Debug/Release)/プラットフォーム(x86/x64)を一番上のドロップボックスから変更し、各設定/プラットフォームの設定を保存することで、すべての設定/すべてのプラットフォームでこの手順を繰り返します。

プリプロセッサ定義を編集します。 以下を追加して '_CRT_SECURE_NO_WARNINGS'を定義すると、機能の互換性に関する警告が無効になります。

+0

私はこれを最後に追加しましたが、成功しませんでした –

+0

私はこれをvs2015/Debug/Win32の設定で自分でテストしました - 少なくとも私の場合は動作します。アクティブな選択された設定が、変更しているプロジェクト設定と一致していない可能性がありますか? – TarmoPikaro

+0

skype(tarmo_pikaro)などのプロジェクト全体を私に送ることはできますか? – TarmoPikaro

1

_CRT_SECURE_NO_WARNINGSはちょうど警告です - あなたのコードはまだコンパイルされます(そして、VC++ 6でコンパイルされたときよりも安全です)。 (お使いの出力から)あなたが持っている唯一のエラーは、フォームにあります。

Pewrap.cpp(551): error C2065: 'i': undeclared identifier 

私は「私は」ループインデックス変数のある、そして、あなたのVC++ 6プロジェクトは、Microsoft言語拡張機能を使用することを仮定するつもりですループの後にループ変数の宣言が残るようにします。私はあなたのVS2015プロジェクトでDisable Language Extensions/Za(Property Pages-> C/C++ - > Language)がオンになっているので、 'i'が使用されている最初のループが動作していると推測します。エラー。いずれかの言語拡張を無効にしないでください。または、それを使用するすべてのループ(またはより高いスコープ)で 'i'を宣言してください。

'i'を正しく宣言すると、どの言語拡張も依存しないため、最も移植性の高い方法です。例えば。あなたは、この持っている:

for(int i=0;i<NO_OF_FUNCTIONS;i++) 
... 
for(i=0;i<pImage->FileHeader.NumberOfSections;i++) 
... 

は最初の使用法を変更するIは、単に:あなたは無害警告で示し

int i; 
for(i=0;i<NO_OF_FUNCTIONS;i++) 
+0

言語拡張機能を無効にする/ ZaはNO –

+1

です。Pewrap.cppに関連するコードを入力してください。 – MuertoExcobito

+0

関連するコード –

0

メッセージのみ。あなたのコメントとは逆に、_CRT_SECURE_NO_WARNINGSを定義すると、それらは去ってしまいます。そうでない場合は、シンボルを適切に定義しなかったか、適切なファイルを定義していませんでした。

他の投稿では'i': undeclared identifierというエラーが表示されていますが、要約は表示されません。後者が発生した場合は、/ Zcオプション(For Loop ScopeのC++/Language/Force Conformance)を使用して管理されるループ内変数宣言のスコープ規則の変更になります。