-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Библиотека на С++ для вызова библиотеки на С в 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

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку