2012-10-29 9 views
6

Mam problem z połączeniem C++ i C++/cx. Muszę korzystać z biblioteki FreeType, ale używają "ogólnej" nazwy dla niektórych zmiennych. Ja też trzeba włączyć rozszerzenia VC++ ponieważ WinRT aplikacja, która powoduje konflikt nazw (ogólne jest kluczowe w C++/cx)Konflikt typu "rodzajowy" FreeType ze słowem kluczowym C++/cx

1>freetype2\include\freetype\freetype.h(1391): error C2059: syntax error : 'generic' 

ja tylko dodaje odniesienie freetype i aditional należą do moich katalogów właściwości projektu.

Czy istnieje sposób na rozwiązanie tej sprawy? Dziękuję za pomoc :) Tomas

+0

Jak rozwiązać konflikt opcji/ZW dla aplikacji WinRT? Po prostu zmień nazwę pliku * .c na * .cpp? – CReaTuS

+0

Witam - znalazłem to pytanie, gdy trafiłem dokładnie na ten sam problem. Czy próbujesz również skompilować Freetype z/clr: pure? Jeśli tak, czy ci się udało? – bright

Odpowiedz

12

Wykorzystanie preprocesora aby zmienić nazwę tego słowa kluczowego tymczasowo:

#define generic GenericFromFreeTypeLibrary 
#include .... files from FreeTypeLibrary 
#undef generic 

to rozwiązanie nie jest bardzo ładne, ale powinno działać.

+0

Czy możesz podać wyraźny przykład tego, jak to powinno wyglądać? Co masz na myśli przez GenericFromFreeTypeLibrary? – BRabbit27

+0

'GenericFromFreeTypeLibrary' jest po prostu dowolnie utworzoną nazwą - tylko po to, by FreeTypeLibrary używał tej nazwy zamiast ogólnej - która jest słowem kluczowym w WinRT. Możesz użyć 'ABRACADABRA' lub cokolwiek chcesz - zakładając, że nie spowoduje to żadnych nowych konfliktów ... – PiotrNycz

+0

OK Myślałem, że muszę zastąpić to coś czymś innym. – BRabbit27

Powiązane problemy