Tôi đã mở một không gian làm việc cũ là libray và bộ phận thử nghiệm của nó. Nó được sử dụng để làm việc tốt nhưng bây giờ không và các phiên bản cũ của mã không hoạt động hoặc với cùng một lỗi. Tôi đã thử tạo lại dự án và cũng gây ra các lỗi tương tự. Không có gì dường như không đúng thứ tự trong cài đặt dự án và mã được tạo ra hoạt động trong ứng dụng chính.Các sự cố liên kết (VC6)
Tôi đã loại bỏ hầu hết các tệp và giảm xuống mức tối thiểu để tạo lỗi. Rất tiếc, tôi không thể đăng dự án vì điều này được sử dụng trong mã sản xuất.
Lỗi liên kết LNK2001 tôi thường gặp có nghĩa là tôi đã rời khỏi thư viện hoặc quên triển khai chức năng ảo. Tuy nhiên, đây là một phần của thư viện mẫu chuẩn - và là một tiêu đề ở đó.
Các mã được liệt kê như là có vấn đề trong IOCompletionPort.obj không thực sự sử dụng std::string
trực tiếp, nhưng không gọi một lớp có quyền này: Comms::Exception
chấp nhận một std::string
và giá trị của GetLastError
hoặc WSAGetLastError
.
Hàm được đề cập trong lỗi (GetMessage
) được triển khai, nhưng là một hàm ảo để các lớp khác có thể ghi đè lên nếu cần. Tuy nhiên nó xuất hiện rằng trình biên dịch đã làm cho nó như là một phiên bản Ansi, nhưng tôi không thể tìm thấy bất kỳ tùy chọn trong các thiết lập mà sẽ kiểm soát đó. Tôi nghi ngờ rằng có thể là vấn đề nhưng vì có rất ít trong cách lựa chọn cho thư viện tôi không có cách nào để biết chắc chắn. Tuy nhiên cả hai dự án chỉ định _MBCS trong các tùy chọn trình biên dịch.
-------------------- Cấu hình: TestComms - Win32 Gỡ lỗi ------------------ - Liên kết ... Comms.lib (IOCompletionPort.obj) : lỗi LNK2001: biểu tượng bên ngoài chưa được giải quyết "công khai: lớp ảo std :: basic_string, class std :: allocator> __thiscall Comms :: Ngoại lệ :: GetMessageA (void) const "(? GetMessageA @ Ngoại lệ @ Comms @@ UBE? AV? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ XZ) Gỡ lỗi/TestComms .exe: lỗi nghiêm trọng LNK1120: 1 bên ngoài chưa được giải quyết Lỗi khi thi hành link.exe.
TestComms.exe - 2 lỗi (s), 0 cảnh báo (s)
Bất kỳ lời đề nghị? Tôi đã mất hầu hết buổi sáng và không muốn mất hầu hết buổi chiều.