Hàm fopen
trả về một con trỏ tới cấu trúc FILE
, được coi là một giá trị mờ đục, không xử lý nội dung hoặc ý nghĩa của nó.Làm cách nào để lấy tệp HANDLE từ cấu trúc FILE fopen?
Trên Windows, thời gian chạy C là trình bao bọc của API Windows và chức năng fopen
dựa trên chức năng CreateFile
. Hàm CreateFile
trả về một HANDLE
, được sử dụng bởi các API Windows khác.
Bây giờ, tôi cần phải sử dụng API Windows sâu bên trong thư viện sử dụng fopen
và FILE*
. Vì vậy: có cách nào để lấy số HANDLE
từ cấu trúc FILE
không? Vì đây là trình biên dịch cụ thể, tôi có nghĩa là trên thư viện thời gian chạy MSVC.
Tôi hiểu rằng đây sẽ là một bản hack xấu xí, không di động và có thể bị hỏng nếu Microsoft thay đổi định dạng nội bộ là FILE
... nhưng tôi đang phát triển trên hệ thống đóng (ví dụ: trên hệ thống nhúng Windows CE) và tái cấu trúc thư viện sẽ khó và tốn thời gian.
Great câu hỏi này, tôi xử lý cái này bản thân mình hơn 2 năm về trước. –