Tôi đang sử dụng DllImport
trong giải pháp của mình.
Vấn đề của tôi là tôi có hai phiên bản của cùng một DLL được xây dựng cho 32 bit và một phiên bản khác cho 64 bit.Đặt dllimport lập trình trong C#
Cả hai đều hiển thị cùng một chức năng với tên giống hệt nhau và chữ ký giống hệt nhau. Vấn đề của tôi là tôi phải sử dụng hai phương pháp tĩnh để hiển thị chúng và sau đó tại thời gian chạy sử dụng IntPtr
kích thước để xác định đúng để gọi.
private static class Ccf_32
{
[DllImport(myDllName32)]
public static extern int func1();
}
private static class Ccf_64
{
[DllImport(myDllName64)]
public static extern int func1();
}
tôi phải làm điều này vì myDllName32
và myDllName64
phải được liên tục và tôi đã không tìm thấy một cách để thiết lập nó tại thời gian chạy.
Có ai có giải pháp thanh lịch cho điều này để tôi có thể loại bỏ trùng lặp mã và kiểm tra kích thước không đổi IntPtr
không đổi.
Nếu tôi có thể đặt tên tệp, tôi sẽ chỉ phải kiểm tra một lần và tôi có thể loại bỏ một tấn mã lặp lại.
Không có ý nghĩa trong cách chọn nó trong thời gian chạy nếu sự khác biệt là là toàn bộ biên soạn . – Havenard