2016-10-04 3 views
0

Я пытался создать dll C# с API-интерфейсом C (таблица экспорта). И я сделал это самый простой код:dll unmanagedExport не создает таблицу экспорта

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:\Projects\CS_Post\bin\Release>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.
Может кто-нибудь помочь в этом? На данный момент я просто хочу экспортировать одну функцию/

ответ

2

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

Смежные вопросы