occt: master d7eefb11

Author Committer Branch Timestamp Parent
ddzama smoskvin master 2022-08-19 14:41:49 master 80d47535
Affected Issues  0032986: Samples - csharp sample is crashed on compilation with VC++ 2022
Changeset 0032986: Samples - csharp sample is crashed on compilation with VC++ 2022

While demanding c++ language standard c++20, the error of OCCTProxy compilation is occured:

warning C4857: C++/CLI mode does not support C++ versions newer than C++17; setting language to /std:c++17
error C7681: two-phase name lookup is not supported for C++/CLI or C++/CX; use /Zc:twoPhase-

Officially, C++/CLI mode does not support C++ version newer than C++17, so we should not demand C++20 to compile csharp samples.
Alternative solution - using /permissive (ConformanceMode = false), rather than default value /permissive- (ConformanceMode = true)
option to compile OCCTProxy. But alternative solution has been denied.
So, here is nothing to do to fix compilation of OCCTProxy project.

Nevertheless, error occures in IE_WPF_WinForms and IE_WinForms - if we trying to compile with VC++ 2022 (not demanding c++20):

warning MSB3274: The primary reference "*\OCCTProxy.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.7.2" framework.
This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0".

To solve the problem it is proposed to demand by default the highest version of NETFramework - 4.8.
So, demanding NETFramework v4.8 does not crashing compilation of csharp samples with VC++ 2015.
mod - samples/CSharp/WinForms/app.config Diff File
mod - samples/CSharp/WinForms/IE_WinForms.csproj Diff File
mod - samples/CSharp/WPF_D3D/app.config Diff File
mod - samples/CSharp/WPF_D3D/IE_WPF_D3D.csproj Diff File
mod - samples/CSharp/WPF_WinForms/app.config Diff File
mod - samples/CSharp/WPF_WinForms/IE_WPF_WinForms.csproj Diff File