Создать одну .DLL из нескольких (Native и .NET) - C#
Формулировка задачи:
Всем привет!
Можно ли сделать одну .DLL из нескольких, разных платформ/языков?
К примеру вот так:
Wrapping C++ DLL for use in Excel / VBA using some pretty awesome open source projects
получается, а так:
Сделал следующее (только для понимания механизма):
через NuGet установлено (это вообщем-то быстро):
1.Costura.Fody
2.Mpir.Net
3.Создан Class - LongNum (наследник Mpir.NET.mpz_t)
далее в в FodyWeavers.xml
- Не пакует... xmpir64.dll в единую .DLL
Добавил <bool ssemblyToIndirectReference = "true"> в соответствии с тем, что xmpir64.dll не включена в проект по прямой ссылке (и у меня не включается ссылка на эту .dll)
Видимо или я делаю что-то не то, или нужна ссылка на .dll в проекте, что бы она попадала в пак..?!
Платформа решения: везде x64
VB знаю получше чем С#, заранее извиняюсь за ошибки, если где-то буду допускать.
namespace ClassLibrary1 { public class LongNum: Mpir.NET.mpz_t { } }
<?xml version="1.0" encoding="utf-8"?> <Weavers> <Costura> <Unmanaged64Assemblies> <bool ssemblyToIndirectReference = "true"> Mpir.NET xmpir64 </bool> </Unmanaged64Assemblies> </Costura> </Weavers>
Решение задачи: «Создать одну .DLL из нескольких (Native и .NET)»
textual
Листинг программы
[DllImport("kernel32.dll")] public static extern IntPtr GetModuleHandle(string lpModuleName); private static IntPtr initialize_hxmpir() { if (hxmpir == IntPtr.Zero) //hxmpir = LoadLibrarySafe(GetXMPIRLibraryPath()); hxmpir = GetModuleHandle("xmpir64.dll"); return hxmpir; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д