2012-10-29 21 views
6

Tôi gặp vấn đề khi đặt C++ và C++/cx lại với nhau. Tôi cần phải sử dụng thư viện FreeType, nhưng họ đang sử dụng tên "chung chung" cho một số biến. Tôi cũng cần phải kích hoạt VC++ mở rộng vì WinRT ứng dụng, gây ra xung đột tên (generic là từ khóa trong C++/cx)FreeType "chung" xung đột với từ khóa C++/cx

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

Tôi chỉ thêm tài liệu tham khảo freetype và aditional bao gồm các thư mục để tính dự án của tôi.

Có cách nào để giải quyết trường hợp này không? Cảm ơn bạn đã giúp đỡ của bạn :) Tomas

+0

Bạn giải quyết xung đột tùy chọn/ZW cho ứng dụng WinRT như thế nào? Chỉ cần đổi tên * .c thành * .cpp? – CReaTuS

+0

Xin chào - Tôi đã tìm thấy câu hỏi này trong khi nhấn chính xác cùng một vấn đề. Bạn cũng đang cố gắng để biên dịch Freetype với/clr: tinh khiết? Nếu vậy, bạn đã thành công? – bright

Trả lời

12

Sử dụng tiền xử lý để đổi tên từ khóa này tạm thời:

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

Giải pháp này không phải là rất tốt đẹp, nhưng nên làm việc.

+0

Bạn có thể đưa ra một ví dụ rõ ràng về điều này sẽ trông như thế nào? Bạn có ý nghĩa gì bởi GenericFromFreeTypeLibrary? – BRabbit27

+0

'GenericFromFreeTypeLibrary' chỉ là tên được tạo tùy ý - chỉ để gây ra FreeTypeLibrary sẽ sử dụng tên này thay vì chung chung - đó là từ khóa trong WinRT. Bạn có thể sử dụng 'ABRACADABRA' hoặc bất cứ điều gì bạn muốn - giả sử nó sẽ không gây ra bất kỳ mâu thuẫn mới nào ... – PiotrNycz

+0

Ok tôi nghĩ tôi phải thay thế thứ đó bằng thứ khác. – BRabbit27