2011-01-12 22 views
10

Tôi đã giải quyết vấn đề này và có thể có một số nguyên nhân gây ra vấn đề này.Ứng dụng đã không khởi động được vì không tìm thấy MSVCP100D.dll, cài đặt lại ứng dụng có thể hoạt động

này xảy ra khi ứng dụng của tôi cố gắng để tải một tập tin .dll được xây dựng trong một phiên bản của Visual Studio (2010), nếu tôi xây dựng các dự án tương tự trên Visual Studio     2008, tải tập tin DLL tốt ...

tôi không biết nếu nó quan trọng, nhưng Visual Studio     2010 phiên bản tập tin DLL được xây dựng trên Windows   7 x32 và Windows   Vista 64-bit là ở phía bên kia với Visual Studio     2008.

+5

Biên dịch lại ứng dụng của bạn ở chế độ "Phát hành" (thay vì chế độ "Gỡ lỗi"), sau đó tải xuống và cài đặt gói Visual C++ 2010 Redistributable cho kiến ​​trúc bộ xử lý thích hợp trên máy đích: [x86] (http: // www. microsoft.com/downloads/en/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84&displaylang=en), [x64] (http://www.microsoft.com/downloads/en/details.aspx?FamilyID = bd512d9e-43c8-4655-81bf-9350143d5867). Máy đích phải có cùng một phiên bản của thời gian chạy được cài đặt khi bạn xây dựng. Trong trường hợp này, đó là v10.0 (từ VS 2010). –

+1

chỉ cần tham khảo hai liên kết sau đây: [http://www.buggymind.com/305](http://www.buggymind.com/305) [http://msdn.microsoft.com/ko-kr/library/ abx4dbyh.aspx] (http://msdn.microsoft.com/ko-kr/library/abx4dbyh.aspx) Tôi hy vọng nó sẽ giúp ích. –

Trả lời

11

Nếu bạn liên kết động với thời gian chạy MSVC thì bạn cần phải cài đặt thời gian chạy trên mỗi máy sẽ chạy ứng dụng của bạn.

Lưu ý rằng trong trường hợp này có vẻ như bạn đang liên kết đến phiên bản gỡ lỗi của thời gian chạy, việc phân phối các ứng dụng được liên kết với phiên bản gỡ lỗi của thời gian chạy là không bình thường.

+0

Tôi đã thay đổi tùy chọn tạo mã từ gỡ lỗi dll đa luồng thành 'đa luồng dll – Marko29

+0

biên dịch và nó không giải quyết được vấn đề, tôi thực sự không biết tôi nên xem ở đâu – Marko29

+0

Có phải nó vẫn báo cáo 100D hoặc chỉ 100 ngay bây giờ? Nếu đó là 100D, bạn không có quyền tùy chọn hoặc biên dịch lại tất cả; nếu đó là 100 thì bạn sẽ nhận được trình cài đặt MSVC runtime từ DVD VS của bạn (hoặc bạn có thể tải xuống nó) và chạy nó trên hệ thống đích. – Rup

7

Nếu bạn không muốn phân phối thời gian chạy, bạn có thể chuyển tùy chọn Thư viện thời gian chạy trong Visual Studio (Thuộc tính -> C/C++ -> Code Generation -> Runtime Library) từ/MD sang/MT hoặc từ/MDd đến/MTd.

Như những người khác đã nói, nếu bạn đang phân phối ứng dụng này, bạn nên liên kết động hoặc tĩnh với phiên bản Phát hành của thư viện Thời gian chạy chứ không phải phiên bản Gỡ lỗi.

2

Chỉ một lời khuyên nhỏ liên quan: KHÔNG thêm bất kỳ tệp * 248d.lib nào trong khi xây dựng và chạy trong phiên bản RELEASE.

Tôi đã theo dõi lời khuyên từ các blog khác nhau và tôi đã vô tình thêm cả hai tệp * 248d.lib cũng như các tệp 248.lib. Về cơ bản trong LinkerNhậpThêm phụ thuộc, đảm bảo rằng bạn không có tệp * 248d.lib trong đó (ở đây 248 là phiên bản 2.4.8).

Tôi đã bỏ ra hàng giờ tự hỏi tại sao mọi thứ không hoạt động trong chế độ phát hành cho đến khi nó tấn công tôi rằng có hai bản sao của tệp .lib, một * 248 và khác * 248d. Nếu bạn bao gồm bất kỳ tập tin d trong chế độ phát hành, bạn sẽ nhận được vấn đề DLL.

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