Я пытаюсь создать DLL на C# для использования на нескольких других языках. Я нашел DllExport RGiesecke, но он, похоже, не работает. Он строит просто отлично и делает dll, но когда я открываю его в Dependency Walker, он не показывает никаких функций, и мой код вызова также не может их найти.Нет функций в C# DLL с RGiesecke.DllExport
Я создал новый проект «Библиотека классов» (VS 2013), а затем установил «Неуправляемый экспорт (DllExport для .Net)» из NuGet. Нужны ли какие-либо настройки проекта?
Вот мой код.
using System;
using System.Collections.Generic;
using System.Text;
using RGiesecke.DllExport;
namespace ToolServiceDLL
{
public class Class1
{
[DllExport("addUp", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
public static double addUp(double num1, double num2)
{
return num1 + num2;
}
[DllExport("get5", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
public static int get5()
{
return 5;
}
}
}
Он не создает DLL, он * изменяет * DLL. Так что этого не произошло. Одна неприятная ловушка заключается в том, что пакет Nuget не будет корректно устанавливаться, если вы не выполняете VS повышенный уровень, отказ отключается. Щелкните правой кнопкой мыши ярлык VS и выберите «Запуск от имени администратора». –
Я работаю как Admin, и он показывает «RGiesecke.DllExport.Metadata» в ссылках. Как узнать, пытается ли он изменить DLL? – runfastman