cuốn sách gpt4 ai đã làm

c# - Đầu vào: Dịch cú pháp để sử dụng thư viện C++ trong C#

In lại Tác giả: Walker 123 Thời gian cập nhật: 28-11-2023 00:52:52 30 4
mua khóa gpt4 Nike

Hiện tại tôi đang cố gắng sử dụng tính năng nhập DLL để sử dụng thư viện C++ trong C#. Thư viện được gọi là đánh chặn. Vấn đề là tôi không biết cách dịch các mục #define và khai báo typedef của tệp tiêu đề:

https://github.com/oblitum/Interception/blob/master/include/interception.h

Tôi đã thử sử dụng lệnh "using" nhưng không thành công (tôi không thể truy cập định nghĩa void). Ngoài ra, tôi không hiểu vai trò của __declspec(dllimport) trong tiêu đề này. Trong dự án C# của tôi, tôi chỉ bỏ qua nó? Điều này có tốt không?

Đây là mã tôi muốn sử dụng trong C# (đây là một ví dụ về thư viện)

https://github.com/oblitum/Interception/blob/master/samples/hardwareid/main.cpp

biên tập:

Những gì tôi đã thử: Nhập cơ bản:

[DllImport("interception.dll", CharSet = CharSet.Auto, SetLastError = true)]
void chặn_set_filter(void* bối cảnh, vị từ InterceptionPredicate, bộ lọc ushort);

Tôi không biết cách chuyển đổi InterceptionPredicate. Theo tệp tiêu đề, InterceptionFilter là một ushort và InterceptionContext là một con trỏ rỗng (void*).

câu trả lời hay nhất

Thư viện C++ nên được biên dịch thành tệp .DLL. Tệp .DLL này phải có chức năng xuất. Bạn có thể sử dụng Phụ thuộcCông cụ kiểm tra nội dung xuất từ ​​.DLL. Mã .NET có thể gọi các hàm được xuất C++ bằng cách sử dụng cái gọi là "lệnh gọi nền tảng".

Bây giờ, tôi thực sự khuyên bạn nên tìm hiểu sâu hơn về vấn đề này Hướng dẫn gọi nền tảngNó sẽ hướng dẫn bạn.

Tái bút: trống * Nên được khai báo là IntPtr trong C#. liệt kê Nên được khai báo lại dưới dạng enum. Các hàm nên được khai báo bằng cách sử dụng Nhập DLL Các phương thức bên ngoài tĩnh được đánh dấu thuộc tính.

Về c# - Đầu vào: Dịch cú pháp để sử dụng thư viện C++ trong C#, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/13125829/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress