Рейтинг:0

Обертка C# для библиотеки Debian apt libapt-pkg

флаг cn

Мне нужно получить информацию о пакете в моем приложении C#, работающем в Linux. я пытался использовать Python.NET которые обертывают python-apt которые обертывают libapt-pkg.so, и это работает, но я бы предпочел более прямое использование pinvoke libapt-pkg.

Но мне нужна помощь в моем операторе DLLImport.

При использовании python-apt я сначала инициализирую подходящий модуль, затем создайте экземпляр Кэш() класс, а затем вызовите Кэш.keys() функция, которая извлекает все имена пакетов в виде массива строк.

Если я смогу заставить это работать с помощью pinvoke, я считаю, что у меня есть хорошие шансы заставить работать и остальные (получить более продвинутые вещи)

Просто чтобы показать код, который не работает, но просто для начала:

[DllImport("libapt-pkg")]
открытый статический внешний динамический GetPkgCache (логический BuildCaches);

динамический AptCache = GetPkgCache (ложь);

Я искал в заголовочном файле файл кеша.h удачного проекта. Может быть, эти строки можно использовать для моего оператора DllImport?

..
встроенный оператор pkgCache &() const {return *Cache;};
встроенный оператор pkgCache *() const {return Cache;};
..
встроенный pkgCache* GetPkgCache() { BuildCaches(NULL, false); вернуть Кэш; };
..

Но я новичок в C/C++, поэтому в настоящее время для меня это не имеет особого смысла.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.