32-битная оболочка Dll для родной 64-битной библиотеки DLL

0

Я создал 64-битную dll, используя c++. Возможно ли иметь aС# 32bit dll в качестве оболочки для 64-разрядной DLL?

Я смог выполнить работу, создав 64-битную dll-оболочку С#. Но когда я попытался иметь 32-битную оболочку, она не работает, возможно ли это? или я делаю то, что никогда не может быть сделано?

Теги:
dll
wrapper
interop

1 ответ

4

32-битный код не может (напрямую) вызывать 64-битный код и наоборот. Вы должны перейти на режимы перехода, которые действительно могут выполняться только на уровне ОС. Поэтому, хотя я не эксперт по.Net/С#, я бы сказал "невозможно".

Вы можете создать автономный сервисный процесс, который работает в 64-битном пространстве и использует 64-разрядную DLL, и использовать межпроцессную связь для передачи данных взад и вперед.

Или скомпилируйте DLL как 32-битную библиотеку...

  • 1
    Абсолютно правильно: 32-битный процесс никогда не сможет загрузить 64-битную DLL. Взаимодействие (со специфическими для приложения DLL) со сборками AnyCPU представляет собой еще одну проблему. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню