2008-10-23 25 views
17

Tôi đang làm việc trên cấu hình giải pháp mới cho dự án VC++ lớn của chúng tôi bằng cách sử dụng VS 2008. Tôi muốn cấu hình này sử dụng cờ đa lõi xây dựng /MP.Các chiến lược để xây dựng đa lõi (/ MP) sử dụng #import

Tuy nhiên, tính năng "#import" tạo các lớp trình bao bọc COM được rắc qua hết cơ sở mã và tính năng này không được hỗ trợ khi sử dụng/MP.

Tôi hiểu tại sao #import không hoạt động, Tôi muốn biết liệu có ai gặp phải vấn đề này và cách họ làm việc xung quanh nó không?

Tôi đang làm như sau:

  • Không sử dụng cờ/MP vào các dự án có dung lượng nhỏ hoặc ngoài giúp đỡ. (có thể tôi sẽ quay lại với họ sau)
  • Đã xóa #import và thay thế bằng tiêu đề MIDL được tạo tiêu chuẩn hơn (#include). Đây chỉ là một lựa chọn ở một vài nơi dễ chuyển đổi sang trường cũ COM.
  • Tạo một dự án mới để #imports các thư viện còn lại. Làm cho nó xây dựng đầu tiên. #Bao gồm các tệp .tlh mà nó tạo trong tất cả các địa điểm mà #imported trước đó.

Tôi tò mò liệu có ai có bất kỳ đề xuất nào khác không? ? Ngoài ra, trên điểm cuối cùng (tạo một dự án mới và chỉ sử dụng #import) - nếu bạn đã làm điều gì đó như thế này, bạn đã làm như thế nào? Loại dự án nào, "nguồn" trông như thế nào, bạn đã xuất tệp ở đâu? Bạn đã bao gồm chúng như thế nào? (bạn biết đấy, làm tất cả những suy nghĩ cho tôi!)

+0

tùy chọn cuối cùng của bạn có vẻ là cách tốt nhất để thực hiện nếu bạn muốn xây dựng đa lõi - nó phù hợp và không lãng phí công việc. Nỗi buồn mà tôi không thể giúp đỡ với các chi tiết về nó, – Tim

+0

Cảm ơn nhận xét. Hóa ra tôi sẽ cần một số giai đoạn của thế hệ tlh ở các giai đoạn khác nhau của xây dựng (một trận chiến gần như vô vọng). Tôi đã giữ điều này - trận chiến hiện tại của tôi là di chuyển ra khỏi VSS. – Aardvark

+2

Đây là câu trả lời của bạn http://stackoverflow.com/questions/650578/replacement-for-import-in-visual-c –

Trả lời

6

Tôi có một dự án với hai tệp nguồn #import cùng một tệp. Khi biên dịch với/MP, thỉnh thoảng nó sẽ nhận được một lỗi truy cập bị từ chối vì cả hai tệp nguồn đã cố gắng tạo ra .tlb cùng một lúc. Tôi sửa lỗi này bằng cách bật các tiêu đề đã được biên dịch trước và thêm #import vào tệp nguồn tiêu đề được biên dịch trước.

+0

Điều này phù hợp với tôi. Không chắc chắn nếu có bất kỳ nhược điểm, nhưng bây giờ tôi hạnh phúc. Cảm ơn. – criddell

6

Bạn có thể sử dụng tùy chọn/MP cho toàn bộ dự án và sau đó tạo ngoại lệ cho một tệp bằng cách sử dụng tùy chọn /MP1.

+1

Tôi sẽ rất đẹp nhưng nó không hoạt động. – sorin

Các vấn đề liên quan