Создать одну .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)
namespace ClassLibrary1
{
    public class LongNum: Mpir.NET.mpz_t
    {
        
    }
}
далее в в FodyWeavers.xml
<?xml version="1.0" encoding="utf-8"?>
 
<Weavers>
  <Costura>
    <Unmanaged64Assemblies>
      <bool ssemblyToIndirectReference = "true">
Mpir.NET        
xmpir64
      </bool>
    </Unmanaged64Assemblies>
  </Costura>
 
</Weavers>
- Не пакует... xmpir64.dll в единую .DLL Добавил <bool ssemblyToIndirectReference = "true"> в соответствии с тем, что xmpir64.dll не включена в проект по прямой ссылке (и у меня не включается ссылка на эту .dll) Видимо или я делаю что-то не то, или нужна ссылка на .dll в проекте, что бы она попадала в пак..?! Платформа решения: везде x64 VB знаю получше чем С#, заранее извиняюсь за ошибки, если где-то буду допускать.

Решение задачи: «Создать одну .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;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы