Điểm:0

Trình bao bọc C# cho thư viện apt Debian libapt-pkg

lá cờ cn

Tôi cần truy xuất thông tin gói trong ứng dụng C# chạy trên Linux. tôi đã thử sử dụng Python.NET bọc nào python-apt bọc nào libapt-pkg.sovà nó hoạt động nhưng tôi muốn truy cập trực tiếp hơn bằng pinvoke libapt-pkg.

Nhưng tôi cần trợ giúp về câu lệnh DLLImport của mình.

Khi sử dụng python-apt, trước tiên tôi khởi tạo đúng cách mô-đun, sau đó khởi tạo mô-đun Bộ nhớ cache() lớp và sau đó gọi Cache.keys() hàm truy xuất tất cả các tên gói dưới dạng một mảng chuỗi.

Nếu tôi có thể làm cho nó hoạt động bằng cách sử dụng pinvoke, tôi tin rằng tôi cũng có cơ hội tốt để phần còn lại hoạt động (lấy những thứ nâng cao hơn)

Chỉ để hiển thị một số mã không hoạt động, nhưng chỉ để bắt đầu:

[DllImport("libapt-pkg")]
GetPkgCache động bên ngoài tĩnh công khai (Boolean BuildCaches);

AptCache động = GetPkgCache(false);

Tôi đã tìm trong tệp tiêu đề cachefile.h của dự án apt. Có lẽ những dòng này có thể sử dụng được cho câu lệnh DllImport của tôi?

..
toán tử nội tuyến pkgCache &() const {return *Cache;};
toán tử nội tuyến pkgCache *() const {return Cache;};
..
pkgCache nội tuyến* GetPkgCache() { BuildCaches(NULL, false); trả lại Bộ đệm; };
..

Nhưng tôi chưa quen với C/C++ nên hiện tại nó không có ý nghĩa gì đối với tôi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.