Итак, вы решили изучать dotnet? Но вас смущает, что это использует концепцию виртаульной машины? Используйте Ди, там где нужна особая скорость.
Основа взята отсюда https://dlang.org/dll-linux.html.
Итак,
dll.d:
Основа взята отсюда https://dlang.org/dll-linux.html.
Итак,
dll.d:
import
core.stdc.stdio;
extern
(C)
int
dll(char
*
message)
{
printf("ENTER
= %s\n",message);
return
0;
}
собирает разделяемую библиотеку:
dmd -c dll.d -fPIC
dmd -oflibdll.so dll.o -shared -defaultlib=libphobos2.so
Теперь можно использовать эту библиотеку в dotnet,
main.cs:
using
System.Runtime.InteropServices;
using
System;
public
static class
main
{
[DllImport
("libdll.so")]
private
static
extern
int
dll
(string
message);
public
static
void
Main()
{
dll("Привет, ДИ!");
}
}
csc main.cs && mono main.exe
Комментарии
Отправить комментарий