System Windows NIE MOŻE załadować 32-bitowej biblioteki DLL do procesu 64-bitowego - jest to ograniczenie, którego nie można ominąć. Oznacza to, że jeśli twoja 32-bitowa biblioteka DLL wykonuje jakiekolwiek P/Invokes do innych 32-bitowych bibliotek DLL (lub używa jakiejkolwiek 32-bitowej biblioteki DLL z .NET), będziesz całkowicie pozbawiony szczęścia (będziesz musiał uruchomić całą witrynę w wersji 32-bitowej).
Nie wiadomo, kiedy to działa, a kiedy nie. Oto wyjaśnienia:
- x86 - 32bit - Nie można załadować do procesu 64-bitowego.
- x64 - 64bit - Nie można wykonać na komputerze 32-bitowym.
- AnyCPU - dual - Może być ładowany i wykonywany w obu środowiskach.
chodzi o AnyCPU:
- procesu na maszynie 64-64-bitowej - DLL ładowane jako 64-bitowe.
- Proces 32-bitowy na maszynie 32-bitowej - biblioteka DLL jest ładowana jako 32-bitowa.
- Proces 32-bitowy na maszynie 64-bitowej - biblioteka DLL jest ładowana jako 32-bitowa.
W większości przypadków dobrze jest zostawić go jako AnyCPU. Jednakże, jak już wspomniałem, jeśli używasz natywnych lub 32-bitowych bibliotek DLL, będziesz musiał utworzyć całą aplikację 32-bitową (i nie ma nic, co można, lub Microsoft mógłby zrobić w tej sprawie).
Czy to dll można skompilować? – kbyrd