Неуправляемая экспортная dll не создает таблицу экспорта

#c# #.net #dll

#c# #.net #dll

Вопрос:

Я пытался создать 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_PostbinRelease>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.
Может кто-нибудь помочь в этом? На данный момент я просто хочу экспортировать одну функцию/

Ответ №1:

Проблема заключалась в том, что вы не можете установить смешанную платформу в сборке проекта. Он должен быть либо x64, либо x86. Отлично работает даже для newest .NET.