2014-05-13 21 views
5

Khi bao gồm atlwin.h từ thư viện Microsoft ATL trong Visual Studio 2013, tòa nhà có thể dẫn đến nhiều lỗi complier về các phần tử không xác định.Biên dịch lỗi nâng cấp dự án ATL từ vs2010 lên vs2013

HMONITOR is not defined 

Điều này không xảy ra khi xây dựng sử dụng VS2010.

Vì đây là tệp tiêu đề MS chuẩn, các lỗi lớp bị thiếu có vẻ không hợp lý.

+0

Chỉ cần một lưu ý: đây có vẻ như một câu hỏi hợp lý, và đó là một trong đó có thể được giải đáp. Nhưng đăng một bản sao không phải là cách để đi về nó. Nếu bạn có thể dọn sạch câu hỏi ban đầu thông qua chỉnh sửa, điều đó sẽ rất tuyệt. Điều đó sẽ "va đập" nó sao lưu để nó có thể nhận được phần còn lại của các phiếu bầu mở lại nó cần. –

+0

Tôi đã thử và đã nhảy lên và mất đại diện, vậy làm thế nào để tôi làm việc với hệ thống ở đây? – CCondron

+0

Err, cái gì? Làm thế nào bạn có được nhảy vào và mất đại diện? Điều đó không có ý nghĩa gì cả. Ngay cả khi chỉnh sửa được đề xuất bị từ chối, bạn sẽ không mất bất kỳ đại diện nào. Mặc dù xem xét kỹ hơn, bạn * đã * chỉnh sửa thành công câu hỏi đó. Sau đó, một người dùng khác đã xem xét chỉnh sửa của bạn thực sự đã cải thiện nó, thêm định dạng mã. Xem [danh sách sửa đổi tại đây] (http://stackoverflow.com/posts/20314124/revisions). Vì vậy, có vẻ như bạn đã làm những gì bạn có nghĩa vụ phải làm, nó chỉ có thể mất một thời gian cho nó để có được mở lại. Nó có 2 phiếu mở lại bây giờ. –

Trả lời

4

Vì đây là một dự án di sản rất cũ vấn đề là với phiên bản nhắm mục tiêu của cửa sổ trong file stdafx.h

từ MSDN

Visual C++ không còn hỗ trợ nhắm mục tiêu Windows 95, Windows 98 , Windows ME hoặc Windows NT. Nếu các macro WINVER hoặc _WIN32_WINNT của bạn là được chỉ định cho một trong các phiên bản Windows này, bạn phải sửa đổi các macro . Khi bạn nâng cấp dự án được tạo bằng cách sử dụng phiên bản trước của Visual C++ của Visual C++, bạn có thể thấy lỗi biên dịch liên quan đến với các macro WINVER hoặc _WIN32_WINNT nếu chúng được gán cho phiên bản của Windows không còn được hỗ trợ.

Vì vậy, thay đổi

#ifndef WINVER 
#define WINVER 0x0400 
#endif 

để

#ifndef WINVER 
#define WINVER 0x0500 
#define _WIN32_WINNT 0x0500 
#endif 

sửa chữa xây dựng vấn đề

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