Examples/DllExport/BasicExport at master · 3F/Examples
Illustrates basic communication with managed .NET libraries from unmanaged native C++ (host side).
+DotNetCoreLibrary3.dll and ExtDotNetCoreLibrary4.dll are your compiled .NET Core based projects (net9.0;net8.0;netstandard2.1;netstandard2.0; C#)
.NET ClassLibrary1.dll (netfx; C#) is ready for requests: # \ # \ AmazingSin(5, 0, 0) == -nan(ind) # \ Is NaN(AmazingSin(5, 0, 0)): yes # \ AmazingSin(5, 24.781, 11) == 5.249363e+00 # \ Is NaN(AmazingSin(5, 24.781, 11)): no # * \ / (5, 24.781, 27.0) == 1.288480e+01 # * \ / (6, 24.781, 27.0) == 1.348346e+01 # * \ / (7, 24.781, 27.0) == 1.321995e+01 # * \ / (8, 24.781, 27.0) == 1.211111e+01 # * \ / (9, 24.781, 27.0) == 1.022785e+01 # * /\ (10, 24.781, 27.0) == 7.690583e+00 # * / \ (11, 24.781, 27.0) == 4.661560e+00 # * / \ (12, 24.781, 27.0) == 1.334461e+00 # * / \ (13, 24.781, 27.0) == -2.077966e+00 # * / \ (14, 24.781, 27.0) == -5.357522e+00 # * / \ (15, 24.781, 27.0) == -8.294501e+00 #* / \ (16, 24.781, 27.0) == -1.070110e+01 * # / \ (17, 24.781, 27.0) == -1.242344e+01 * # / \ (18, 24.781, 27.0) == -1.335139e+01 * # / \ (19, 24.781, 27.0) == -1.342560e+01 * # / \ (20, 24.781, 27.0) == -1.264134e+01 * # / \ (21, 24.781, 27.0) == -1.104875e+01 * # /\ (22, 24.781, 27.0) == -8.749674e+00 * # \ / (23, 24.781, 27.0) == -5.891111e+00 * # \ / (24, 24.781, 27.0) == -2.655852e+00 * # \ / (25, 24.781, 27.0) == 7.492310e-01 * # \ / (26, 24.781, 27.0) == 4.106406e+00 * # \ / (27, 24.781, 27.0) == 7.201003e+00 * # \ / (28, 24.781, 27.0) == 9.835146e+00 # * \ / (29, 24.781, 27.0) == 1.184040e+01 # * \ / (30, 24.781, 27.0) == 1.308854e+01 # * \ / (31, 24.781, 27.0) == 1.349976e+01 # * \ / (32, 24.781, 27.0) == 1.304775e+01 # * \ / (33, 24.781, 27.0) == 1.176144e+01 # * \ / (34, 24.781, 27.0) == 9.723061e+00 # * /\ (35, 24.781, 27.0) == 7.062958e+00 # * / \ (36, 24.781, 27.0) == 3.951228e+00 # * / \ (37, 24.781, 27.0) == 5.868432e-01 # * / \ (38, 24.781, 27.0) == -2.815066e+00 # * / \ (39, 24.781, 27.0) == -6.036971e+00 # * / \ (40, 24.781, 27.0) == -8.872853e+00 *# / \ (41, 24.781, 27.0) == -1.114138e+01 * # / \ (42, 24.781, 27.0) == -1.269748e+01 * # / \ (43, 24.781, 27.0) == -1.344168e+01 * # / \ (44, 24.781, 27.0) == -1.332636e+01 * # / \ (45, 24.781, 27.0) == -1.235892e+01 * # / \ (46, 24.781, 27.0) == -1.060121e+01 * # /\ (47, 24.781, 27.0) == -8.165623e+00 * # \ / (48, 24.781, 27.0) == -5.207901e+00 * # \ / (49, 24.781, 27.0) == -1.917169e+00 * # \ / (50, 24.781, 27.0) == 1.496152e+00 * # \ / (51, 24.781, 27.0) == 4.813805e+00 * # \ / (52, 24.781, 27.0) == 7.823648e+00 *# \ / (53, 24.781, 27.0) == 1.033322e+01 # * \ / (54, 24.781, 27.0) == 1.218206e+01 # * \ / (55, 24.781, 27.0) == 1.325193e+01 # * \ / (56, 24.781, 27.0) == 1.347444e+01 # * \ / (57, 24.781, 27.0) == 1.283534e+01 # * \ / (58, 24.781, 27.0) == 1.137552e+01 # * \ / (59, 24.781, 27.0) == 9.188304e+00 # * / \ (60, 24.781, 27.0) == 6.413562e+00 # * / \ (61, 24.781, 27.0) == 3.228716e+00 # * / \ (62, 24.781, 27.0) == -1.625840e-01 # * / \ (63, 24.781, 27.0) == -3.543488e+00 # * / \ (64, 24.781, 27.0) == -6.697810e+00 * / \ (65, 24.781, 27.0) == -9.423853e+00 * / \ (66, 24.781, 27.0) == -1.154731e+01 * / \ (67, 24.781, 27.0) == -1.293239e+01 * / \ (68, 24.781, 27.0) == -1.349053e+01 * / \ (69, 24.781, 27.0) == -1.318604e+01 / \ / \ C++ Class wrapper of .NET ClassLibrary2.dll (netfx; visual basic) is ready: \/ \ / AlgVB.superPow(2, 3) == 8.000000e+00 \ / \ / .NET Core DotNetCoreLibrary3.dll (netstandard2; C#) is ready for requests ~^~^~ \ / \ / AmazingCos(5, 24.781, 11) == 1.641399e+00 \ / (5, 24.781, 27.0) == 4.028890e+00 \ / (6, 24.781, 27.0) == 6.680492e-01 \ / (7, 24.781, 27.0) == -2.735508e+00 \ / (8, 24.781, 27.0) == -5.964149e+00 \ / (9, 24.781, 27.0) == -8.811423e+00 \ / (10, 24.781, 27.0) == -1.109527e+01 \/ (11, 24.781, 27.0) == -1.266964e+01 / \ (12, 24.781, 27.0) == -1.343388e+01 / \ (13, 24.781, 27.0) == -1.333912e+01 / \ (14, 24.781, 27.0) == -1.239141e+01 / \ (15, 24.781, 27.0) == -1.065135e+01 / \ (16, 24.781, 27.0) == -8.230211e+00 / \ (17, 24.781, 27.0) == -5.282807e+00 / \ (18, 24.781, 27.0) == -1.997604e+00 / \ (19, 24.781, 27.0) == 1.415333e+00 / \ (20, 24.781, 27.0) == 4.737768e+00 / \ (21, 24.781, 27.0) == 7.757256e+00 / \ (22, 24.781, 27.0) == 1.028072e+01 / \ (23, 24.781, 27.0) == 1.214680e+01 \/ (24, 24.781, 27.0) == 1.323618e+01 \ / (25, 24.781, 27.0) == 1.347919e+01 \ / (26, 24.781, 27.0) == 1.286030e+01 \ / (27, 24.781, 27.0) == 1.141909e+01 \ / (28, 24.781, 27.0) == 9.247697e+00 \ / (29, 24.781, 27.0) == 6.484980e+00 \ / (30, 24.781, 27.0) == 3.307592e+00 \ / (31, 24.781, 27.0) == -8.129350e-02 \ / (32, 24.781, 27.0) == -3.464981e+00 \ / (33, 24.781, 27.0) == -6.627106e+00 \ / (34, 24.781, 27.0) == -9.365473e+00 \ / (35, 24.781, 27.0) == -1.150498e+01 \ (36, 24.781, 27.0) == -1.290883e+01 / \ (37, 24.781, 27.0) == -1.348724e+01 / \ (38, 24.781, 27.0) == -1.320323e+01 / \ (39, 24.781, 27.0) == -1.207497e+01 / \ (40, 24.781, 27.0) == -1.017460e+01 / \ (41, 24.781, 27.0) == -7.623631e+00 / (42, 24.781, 27.0) == -4.585182e+00 / (43, 24.781, 27.0) == -1.253542e+00 / (44, 24.781, 27.0) == 2.158253e+00 / (45, 24.781, 27.0) == 5.432043e+00 / (46, 24.781, 27.0) == 8.358491e+00 ... ExtDotNetCoreLibrary4.dll: .NET 9.0 -> AmazingCos(147, 32.412, 14) == -6.827972e+00 .NET 8.0 -> AmazingCos(231, 8, 62.308, 15) == -1.984088e+00 .NET Standard 2.1 -> AmazingCos(904, 9, 4.201, 16) == 3.091151e+00
Find output binaries in .\bin folder per architecture (x86 & x64) and configuration (Debug & Release).