là có cách nào để sử dụng các lớp C++ được xuất bởi một dll win32 trong Delphi cho win32? Có cách nào khác để lưu trữ những thứ tương tự (COM, .NET, ...) không?Làm thế nào để sử dụng các lớp C++ được xuất bởi một dll ở Delphi
Trả lời
Bạn không thể nhập lớp học. Bạn chỉ có thể nhập các hàm. Rudy Velthuis has written at length on the topic. Mặc dù bạn có thể không trực tiếp sử dụng một ++ lớp C xuất khẩu, ông mô tả một vài kỹ thuật để đạt được hiệu quả tương tự:
"Flatten" đối tượng, vì vậy ở phía bên gọi điện thoại không có đối tượng nữa, chỉ cần một con trỏ được chuyển tới DLL cùng với các tham số khác cho một loạt các hàm bao bọc các phương thức của đối tượng. Viết trình bao bọc rất đơn giản, mặc dù nó có thể tẻ nhạt.
Sử dụng các lớp ảo thuần túy. Các trình biên dịch Windows C++ và Delphi có chung các bố trí VMT, vì vậy nếu lớp C++ có thể được mô tả bằng danh sách các phương thức ảo thuần túy, bạn có thể tạo một khai báo Delphi tương đương, thực hiện một số kiểu-casting với con trỏ đối tượng được DLL trả về, và tiếp tục.
Ví dụ hoàn chỉnh về cả hai cách được đưa ra trong bài viết.
Bạn không thể sử dụng các lớp C++ được xuất từ một DLL theo như tôi biết trong Delphi; bạn có thể sử dụng các hàm C và bạn có thể nhập các lớp COM vào Delphi.
- 1. Làm thế nào để sử dụng một lớp trong DLL?
- 2. Làm thế nào để phân tích tệp kết xuất từ tệp DLL Delphi?
- 3. Làm thế nào để sử dụng C# dll trong vC++?
- 4. Làm thế nào để dllexport một ++ Class C để sử dụng trong một C# ứng dụng
- 5. Làm thế nào để thay đổi kiểu số nguyên được sử dụng bởi một enum (C++)?
- 6. Làm thế nào để bạn trích xuất mã nguồn của lớp học từ một tệp dll?
- 7. Làm thế nào để tải một dll C# trong python?
- 8. Làm thế nào để sử dụng các lớp C++ với ctypes?
- 9. Làm thế nào để thiết lập một hàm C++ sao cho nó có thể được sử dụng bởi p/invoke?
- 10. Làm thế nào để sử dụng Animated Gif ở dạng delphi
- 11. Làm thế nào để có được tương đương với một trường tĩnh (lớp) trong Delphi?
- 12. Làm cách nào để tìm đường dẫn cho các tệp DLL được sử dụng bởi lib accessible_output?
- 13. Làm thế nào để thiết lập lại một TForm delphi để xuất hiện ban đầu sau khi sử dụng ScaleBy()
- 14. Làm thế nào để làm một dòng lệnh xây dựng bằng cách sử dụng Delphi 7?
- 15. Làm thế nào để gỡ lỗi một tệp DLL trong Delphi
- 16. Làm thế nào tôi có thể vượt qua một chuỗi Delphi để một Prism DLL?
- 17. Delphi Chromium được nhúng trên mẫu DLL
- 18. Làm thế nào để đúc một giao diện cho một đối tượng ở Delphi
- 19. Làm thế nào để sử dụng các lớp CHCSVParser
- 20. Có sử dụng cho THeaderControl ở Delphi
- 21. Delphi Làm thế nào để sử dụng TGridPanel
- 22. Làm thế nào để sử dụng COM dll trong chương trình C++ của tôi
- 23. Gọi hàm delphi DLL từ C# Code
- 24. Làm thế nào để sử dụng setenv() để xuất một biến trong c + +?
- 25. Làm thế nào để tạo một số lớp từ dll (constructor in dll)? (С ++)
- 26. Có thể Delphi chỉ sử dụng một .dll nếu được yêu cầu không?
- 27. Làm thế nào để tạo dll trong MATLAB và sử dụng các dll này trong các ứng dụng .Net
- 28. chức năng Gọi từ một C++ DLL trong Delphi
- 29. Làm thế nào để liên kết một .DLL tĩnh?
- 30. Làm thế nào để sử dụng các gói được cài đặt bởi quicklisp?