Библиотека на С++ для вызова библиотеки на С в Linux
|
|
Четверг, 17 Сентября 2020 г. 18:21
+ в цитатник
Sunless: Предыстория вопроса.
Есть программа на ассемблере для Linux
.text
.globl _start
_start:
movq 1, %rax
movq , %rdi
syscall
Есть программа на С, использующая программу на ассемблере и компилируемая GCC в shared library.
#define EXPORT __attribute__((visibility("default")))
EXPORT int foo(void);
int foo(void)
{
extern int _start();
return _start();
}
Цель - написать прослойку на С++ в виде shared library с компиляцией GCC, которая бы прокидывала вызов к себе из C# в функцию библиотеки на С.
В C# вызов такой
using System.Runtime.InteropServices;
class Program{
[DllImport("lib.so")] public static extern int foo ();
static void Main(string[] args)
{
int code = foo();
System.Console.WriteLine(code);
}
}
Я посмотрел в интернете, но, кроме extern "C", информации не нашел.
https://forum.sources.ru/index.php?showtopic=419682&view=findpost&p=3838957
Метки:
C/C++:
Общие вопросы
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-