]> OCCT Git - occt.git/commit
0032986: Samples - csharp sample is crashed on compilation with VC++ 2022
authorddzama <ddzama@opencascade.com>
Fri, 19 Aug 2022 11:41:49 +0000 (14:41 +0300)
committersmoskvin <smoskvin@opencascade.com>
Tue, 6 Sep 2022 16:57:24 +0000 (19:57 +0300)
commitd7eefb11bf8e9649e338d337b9f979e23efc71ef
tree0630bcfbf08ca890aa489d2e9c701707c4e3c5af
parent80d4753574abed00d72ee49181c8194ec45896b9
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.
samples/CSharp/WPF_D3D/IE_WPF_D3D.csproj
samples/CSharp/WPF_D3D/app.config
samples/CSharp/WPF_WinForms/IE_WPF_WinForms.csproj
samples/CSharp/WPF_WinForms/app.config
samples/CSharp/WinForms/IE_WinForms.csproj
samples/CSharp/WinForms/app.config