J'ai une erreur étrange après la mise à jour de la communauté Visual Studio 2019 de la v16.4.5 vers la 16.5. Même une nouvelle installation du moteur ne se construira plus. Je reçois les erreurs répertoriées ci-dessous. La construction n'échoue pas jusqu'à la fin de la compilation de tous les modules:
Error C4800 Implicit conversion from 'ADODB::_Recordset *const ' to bool. Possible information loss UE4 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\INCLUDE\comip.h 311
Error C4800 Implicit conversion from 'ADODB::_Connection *const ' to bool. Possible information loss UE4 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\INCLUDE\comip.h 311
Error MSB3075 The command "..\..\Build\BatchFiles\Build.bat -Target="UE4Editor Win64 Development" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 5. Please verify that you have sufficient rights to run this command. UE4 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets 44
Je n'ai rien changé ou mis à jour du côté Unreal Engine du code. Cette erreur se produit lors d'une compilation de UE4.sln, provenant du dépôt github d'Epic. La construction n'échoue pas tant que tous les modules ne sont pas construits (elle échoue à la fin de la construction).
Étant donné que Microsoft n'a pas d'archives des installateurs pour VS Community, seulement Enterprise et Pro, je suis soudainement coincé ici parce que je ne peux pas simplement désinstaller 16.5 et réinstaller 16.4.5 (qui est la dernière version de travail sur laquelle j'étais avant la mise à jour).
J'ai entendu dire que définir parfois "traiter les avertissements comme des erreurs" sur false peut aider, mais je ne vois pas de moyen de le faire dans Visual Studio.
Tout aperçu de cela serait utile, merci!
Vous devez ajouter la nouvelle ligne de code, comme sur le didacticiel vidéo: Arguments.Add ("/ wd4800"); // 4800: Conversion implicite de 'type' en booléen. Informations possibles
Cela me résout ce problème.
Pour ceux qui font face au même problème, voici la solution.
Étape 1: ouvrez le fichier ADOSupport.cpp on [YourEngineSourceDir]\Engine\Plugins\Runtime\Database\ADOSupport\Source\ADOSupport\Private
Étape 2: allez à la ligne 255 et modifiez-la de if(ADORecordSet && (ADORecordSet->State & ADODB::adStateOpen))
à if(ADORecordSet != nullptr && (ADORecordSet->State & ADODB::adStateOpen))
Étape 3: allez à la ligne 28 et modifiez-la de if( DataBaseConnection && (DataBaseConnection->State & ADODB::adStateOpen))
à if( DataBaseConnection != nullptr && (DataBaseConnection->State & ADODB::adStateOpen))
Étape 4: Créez la solution et profitez-en!
il vous suffit de supprimer le . vs pour résoudre le problème. Le reste est juste pour un rafraîchissement rapide de votre projet.
Ensuite, ouvrez Unreal Engine 4, puis sous File onglet cliquez sur Actualiser le projet Visual Studio. À la fin, essayez de recompiler. Cela devrait résoudre votre problème.
J'ai eu le même problème, et cela l'a résolu:
Chemin du fichier
YOURENGINEPASS\Engine\Source\Programs\UnrealBuildTool\Platform\Windows
Fichier à modifier
VCToolChain.cs
Après la ligne 456, ajoutez la ligne suivante:
Arguments.Add("/wd4800"); // 4800: Implicit conversion from 'type' to bool. Possible information