2009-09-15 4 views
10

Mam natywny kod niezarządzany. Stworzyłem zarządzaną bibliotekę DLL C++ i spróbuj włączyć tę bibliotekę DLL do natywnego kodu niezarządzanego. Wystąpił następujący błąd: błąd krytyczny LNK1302: obsługuje tylko łączenie bezpiecznych .netmodules; nie można połączyć pliku ijw/natywny .netmoduleBłąd krytyczny LNK1302: obsługuje tylko łączenie bezpiecznych .netmodułów; nie można połączyć pliku ijw/native .netmodule

Jak dołączyć zarządzaną bibliotekę DLL C++/CLR do natywnego kodu niezarządzanego?

+0

Spotkałem ten sam problem, po zmianie poprawnej wersji środowiska .net. Teraz działa dobrze. – zangw

+0

Czy na pewno dodajesz plik biblioteki (".lib"), a nie bibliotekę DLL (".dll") jako dane wejściowe do linkera? –

Odpowiedz

3

Spójrz tutaj:

http://msdn.microsoft.com/en-us/library/9x035d1s%28VS.80%29.aspx

„Aby naprawić ten błąd, skompilować z/CLR: bezpieczne, aby umożliwić łączenie MSIL lub przekazać/CLR lub/clr: pure plik .obj z łącznikiem zamiast modułu. "

+1

Po prostu próbowałem tego, a następnie dostałem coś około 60 000 błędów, zamiast tylko 1 linker błąd! Jakieś pomysły...? –

+1

Próbowałem skompilować z/clr: safe i nie działał. Ale zadziałało, gdy łącze z plikami/clr .obj. – stackunderflow

2

Upewnij się, że dodajesz plik biblioteki (".lib"), a nie bibliotekę DLL (".dll") jako dane wejściowe do linkera. To z pewnością spowoduje błąd LNK1302.

Powiązane problemy