Проблема была: вы не можете установить смешанную платформу в сборке проекта. Он должен быть либо x64, либо x86. Прекрасно работает даже для новейших .NET.
Я пытался создать C # dll с API-интерфейсом C (таблица экспорта). И я сделал этот самый простой код:
using System;
using System.Runtime.InteropServices;
using RGiesecke.DllExport;
namespace CS_Post
{
public class Class1
{
[DllExport("ABC", CallingConvention.Cdecl)]
public void test()
{
Console.WriteLine("hehe");
}
}
}
И когда я сбрасываю эту dll, я получаю:
E:ProjectsCS_PostinRelease>dumpbin exports CS_Post.dll
Microsoft (R) COFF/PE Dumper Version 14.00.24213.1
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file CS_Post.dll
File Type: DLL
Summary
2000 .reloc
2000 .rsrc
2000 .text
Также он работает только на .NET 3.5, любой более высокий, похоже, не может найти ildasm.exe
Microsoft.Build.Utilities.ToolLocationHelper could not find ildasm.exe
Я даже не могу найти какой-либо рабочий пример для этого UnamanagedExports.
Может кто-то помочь сделать это? Пока я просто хочу экспортировать одну функцию /