#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.