P/Invoke là gì?

Cho em hỏi : em đang có đoạn code c# mà nó bảo viết trên cái này mà không biết xài thế nào ?
Mong các bác chỉ giùm em với ( EM mới bước vào lập trình nên còn kém lắm @@ Mong các bác trả lời )

Có hai loại là managed và unmanaged:

  • Với c# thì managed code sau khi được biên dịch sang ngôn ngữ chung (CIL) thì sẽ được chạy trên môi trường chạy của .NET (máy ảo CLR). CLR giúp tải và thực thi code được viết trên nhiều ngôn ngữ (C#, F#, …etc) và có nhiều chức năng như là quản lý bộ nhớ (garbage collection), bảo mật, …

  • Unmanaged code thì sẽ được biên dịch trực tiếp sang mã máy và không được quản lý bởi CLR mà được chạy trực tiếp trên máy của chúng ta.

Thường thì ta sẽ dùng unmanaged code để dùng các tính năng của hệ điều hành mà trong máy ảo không có hoặc là sử dụng các thư viện của các ngôn ngữ được biên dịch sang native code như là C/C++.

2 Likes

Hiểu một cách đơn giản là em có các thư viện dll không phải của NET như viết bằng C/C++, hoặc API của windows. Nó không thể add reference như cách dùng với dll của NET.
Và mình phải thực hiện PInvoke để có thể gọi các chức năng trong dll đó.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?