2011-07-25 14 views
12

Tôi đang xây dựng một dự án trong C++ sử dụng thư viện quay video của DirectShow để kết nối với máy ảnh. Nhà sản xuất card màn hình (BlackMagic) đã cung cấp các tập tin .idl (Interface Definition Language) để thêm các đồ thị mới vào bộ sưu tập tiêu chuẩn.Bao gồm tệp .idl trong dự án C++

Thing là, tôi chưa bao giờ gặp một tệp .idl, và hướng mơ hồ "bao gồm tệp" không giúp ích gì nhiều. Bao gồm nó với một chỉ thị #include không ném ra bất kỳ lỗi nào, nhưng chương trình cũng không thể kéo theo các định nghĩa khác nhau mà tôi đoán là nó có ý định thêm vào, vì đó là tệp duy nhất mà tôi được cho là đưa vào dự án.

Câu hỏi của tôi là: cách bao gồm một tệp .idl trong một dự án?

+0

Rất có thể bạn không cần bao gồm .IDL vào dự án của mình hoặc có cách dễ dàng và/hoặc tốt hơn để đạt được bất kỳ điều gì bạn đang cố gắng đạt được. –

Trả lời

16
 
For example: you have an AFileName.idl 
1. Add the AFileName.idl to you project: Right Click on The project->Add->Existing Item... 
2. Click Right on The AFileName.idl from the project->Compile 
3. The step 2 will generate AFileName_h.h, AFileName_i.c, AFileName_p.c,... 
4. Now you can #include "AFileName_h.h" and use it, you also may need 
    to add AFileName_i.c or other generated files to your project 
    depending on your needs. 

Quan sát: các bước được mô tả cho VS2008 nhưng tôi không nghĩ rằng VS2010 khác với quan điểm đó.

+0

Bí quyết, cảm ơn rất nhiều. – wyatt

+3

Nếu bạn thêm tệp .c vào dự án của mình, bạn có thể cũng phải thay đổi tệp C/C++ | Nâng cao | Thuộc tính "Biên dịch thành" thành "Biên dịch dưới dạng mã C (/ TC)" và cũng có thể phải đặt C/C++ của tệp | Tiêu đề biên dịch trước | Thuộc tính "Phần đầu được biên dịch trước" thành "Không sử dụng các tiêu đề được biên dịch trước" –