2009-05-19 22 views
7

Otrzymuję komunikat o błędzie kompilatora D8045. nie można skompilować pliku C "serialcommands.c" z opcją/clr.D8045: nie można skompilować pliku C "serialcommands.c" z opcją/clr

Ten plik jest biblioteką C, napisaną w celu porozmawiania przez port szeregowy z procesorem TI. Zadanie, które muszę wykonać, to zawinięcie tej biblioteki za pomocą wrappera CLR (będą dodatkowe pytania wysłane do stackoverflow dotyczące zbierania danych tam i z powrotem, jeśli chcesz uzyskać więcej łatwiejszych punktów z pytań CLI.)

Po prostu chcę użyj tej biblioteki C z mojego opakowania CLR. Poszedłem do: Właściwości-> Właściwości konfiguracji-> C/C++ -> Ogólne-> Kompilacja z obsługą języka wspólnego Obsługa języka = Brak obsługi języka wspólnego Wspólna obsługa języków

Czy to jest właściwy sposób na zrobienie tego? Czy później doświadczę nieprzyjemnych, dziwnych błędów, czy też są inne rzeczy, które muszę zrobić, aby to wykorzystać?

+0

Jako kontynuacja, jestem teraz na roku od korzystania z tego rozwiązania i nigdy nie doświadczyłem żadnych problemów w wyniku korzystania z tego rozwiązania. Żadnej "dziwności", jakiej się obawiałem. – MedicineMan

Odpowiedz

10

Tak. Musisz skompilować dowolne obiekty C bez/CLR, ponieważ clr rozumie tylko klasy i obiekty.

Nadal można używać ich z projektu C++/CLI, zapakowane wewnątrz obiektów "klasy". Jest to normalny sposób zawijania C api w obiektach .NET.

+2

Uwaga: Można to zrobić "za plik" nie tylko w przypadku jednego projektu, ale nie jest jasne, czy było jasne z pytania/odpowiedzi tutaj w pierwszym czytaniu. –

+0

To może pomóc komuś innemu w przyszłości. Dodałem nowy plik .c do istniejącego projektu z plikami C++/CLI i C i wystąpił ten błąd. W takim przypadku wydaje się, że musisz zmienić ustawienia dla nowych plików, które zostaną dodane lub będą pobierać ustawienia dla projektu. Zajęło mi trochę czasu, aby dowiedzieć się, dlaczego widzę ten problem tylko dla jednego nowego pliku. Ustawienie jest pod C++/Ogólne. – shawn1874

Powiązane problemy