Сообщение Re[12]: C#,Java, go - дико дорого от 06.06.2022 16:28
Изменено 06.06.2022 16:33 Serginio1
Re[12]: C#,Java, go - дико дорого
Здравствуйте, vaa, Вы писали:
S>> Ты пробовал?
vaa>Так точно!
Ну вот редиска ты!
Генерится нативная Microsoft.Interop.Tests.NativeExportsNE.dll библиотека размером 945 кб. Там еще 2 дополнительные Microsoft.Interop.Tests.NativeExports.dll и Microsoft.Interop.Ancillary.dll по 20 и 12 кб
Вызов из .Net такой
Там далеко не ПриветМир
Я так понимаю, что за компиляцию в Native отвечает DNNE
https://github.com/AaronRobinsonMSFT/DNNE
https://github.com/AaronRobinsonMSFT/DNNE/blob/master/src/msbuild/DNNE.props
Вот и верь тебе после этого!
S>> Ты пробовал?
vaa>Так точно!
Ну вот редиска ты!
Генерится нативная Microsoft.Interop.Tests.NativeExportsNE.dll библиотека размером 945 кб. Там еще 2 дополнительные Microsoft.Interop.Tests.NativeExports.dll и Microsoft.Interop.Ancillary.dll по 20 и 12 кб
Вызов из .Net такой
namespace Demo
{
internal static unsafe partial class NativeExportsNE
{
[System.Runtime.InteropServices.DllImportAttribute("Microsoft.Interop.Tests.NativeExportsNE", EntryPoint = "sumi", ExactSpelling = true)]
public static extern partial int Sum(int a, int b);
}
}
namespace Demo
{
internal static unsafe partial class NativeExportsNE
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.LibraryImportGenerator", "42.42.42.42")]
[System.Runtime.CompilerServices.SkipLocalsInitAttribute]
public static partial void Sum(int a, int b, out int c)
{
System.Runtime.CompilerServices.Unsafe.SkipInit(out c);
// Pin - Pin data in preparation for calling the P/Invoke.
fixed (int* __c_native = &c)
{
__PInvoke(a, b, __c_native);
}
// Local P/Invoke
[System.Runtime.InteropServices.DllImportAttribute("Microsoft.Interop.Tests.NativeExportsNE", EntryPoint = "sumouti", ExactSpelling = true)]
static extern unsafe void __PInvoke(int a, int b, int* c);
}
}
}
namespace Demo
{
internal static unsafe partial class NativeExportsNE
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.LibraryImportGenerator", "42.42.42.42")]
[System.Runtime.CompilerServices.SkipLocalsInitAttribute]
public static partial void Sum(int a, ref int b)
{
// Pin - Pin data in preparation for calling the P/Invoke.
fixed (int* __b_native = &b)
{
__PInvoke(a, __b_native);
}
// Local P/Invoke
[System.Runtime.InteropServices.DllImportAttribute("Microsoft.Interop.Tests.NativeExportsNE", EntryPoint = "sumrefi", ExactSpelling = true)]
static extern unsafe void __PInvoke(int a, int* b);
}
}
}
Там далеко не ПриветМир
namespace NativeExports
{
public static unsafe class Demo
{
[UnmanagedCallersOnly(EntryPoint = "sumi")]
public static int Sum(int a, int b)
{
return a + b;
}
[UnmanagedCallersOnly(EntryPoint = "sumouti")]
public static void SumOut(int a, int b, int* c)
{
*c = a + b;
}
[UnmanagedCallersOnly(EntryPoint = "sumrefi")]
public static void SumRef(int a, int* b)
{
*b += a;
}
}
}
Я так понимаю, что за компиляцию в Native отвечает DNNE
https://github.com/AaronRobinsonMSFT/DNNE
https://github.com/AaronRobinsonMSFT/DNNE/blob/master/src/msbuild/DNNE.props
Вот и верь тебе после этого!
Re[12]: C#,Java, go - дико дорого
Здравствуйте, vaa, Вы писали:
S>> Ты пробовал?
vaa>Так точно!
Ну вот редиска ты!
Генерится нативная Microsoft.Interop.Tests.NativeExportsNE.dll библиотека размером 945 кб. Там еще 2 дополнительные Microsoft.Interop.Tests.NativeExports.dll и Microsoft.Interop.Ancillary.dll по 20 и 12 кб
Вызов из .Net такой
Там далеко не ПриветМир.
И еще куча классов для тестов.
Я так понимаю, что за компиляцию в Native отвечает DNNE
https://github.com/AaronRobinsonMSFT/DNNE
https://github.com/AaronRobinsonMSFT/DNNE/blob/master/src/msbuild/DNNE.props
Вот и верь тебе после этого!
S>> Ты пробовал?
vaa>Так точно!
Ну вот редиска ты!
Генерится нативная Microsoft.Interop.Tests.NativeExportsNE.dll библиотека размером 945 кб. Там еще 2 дополнительные Microsoft.Interop.Tests.NativeExports.dll и Microsoft.Interop.Ancillary.dll по 20 и 12 кб
Вызов из .Net такой
namespace Demo
{
internal static unsafe partial class NativeExportsNE
{
[System.Runtime.InteropServices.DllImportAttribute("Microsoft.Interop.Tests.NativeExportsNE", EntryPoint = "sumi", ExactSpelling = true)]
public static extern partial int Sum(int a, int b);
}
}
namespace Demo
{
internal static unsafe partial class NativeExportsNE
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.LibraryImportGenerator", "42.42.42.42")]
[System.Runtime.CompilerServices.SkipLocalsInitAttribute]
public static partial void Sum(int a, int b, out int c)
{
System.Runtime.CompilerServices.Unsafe.SkipInit(out c);
// Pin - Pin data in preparation for calling the P/Invoke.
fixed (int* __c_native = &c)
{
__PInvoke(a, b, __c_native);
}
// Local P/Invoke
[System.Runtime.InteropServices.DllImportAttribute("Microsoft.Interop.Tests.NativeExportsNE", EntryPoint = "sumouti", ExactSpelling = true)]
static extern unsafe void __PInvoke(int a, int b, int* c);
}
}
}
namespace Demo
{
internal static unsafe partial class NativeExportsNE
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.LibraryImportGenerator", "42.42.42.42")]
[System.Runtime.CompilerServices.SkipLocalsInitAttribute]
public static partial void Sum(int a, ref int b)
{
// Pin - Pin data in preparation for calling the P/Invoke.
fixed (int* __b_native = &b)
{
__PInvoke(a, __b_native);
}
// Local P/Invoke
[System.Runtime.InteropServices.DllImportAttribute("Microsoft.Interop.Tests.NativeExportsNE", EntryPoint = "sumrefi", ExactSpelling = true)]
static extern unsafe void __PInvoke(int a, int* b);
}
}
}
Там далеко не ПриветМир.
namespace NativeExports
{
public static unsafe class Demo
{
[UnmanagedCallersOnly(EntryPoint = "sumi")]
public static int Sum(int a, int b)
{
return a + b;
}
[UnmanagedCallersOnly(EntryPoint = "sumouti")]
public static void SumOut(int a, int b, int* c)
{
*c = a + b;
}
[UnmanagedCallersOnly(EntryPoint = "sumrefi")]
public static void SumRef(int a, int* b)
{
*b += a;
}
}
}
И еще куча классов для тестов.
Я так понимаю, что за компиляцию в Native отвечает DNNE
https://github.com/AaronRobinsonMSFT/DNNE
https://github.com/AaronRobinsonMSFT/DNNE/blob/master/src/msbuild/DNNE.props
Вот и верь тебе после этого!