2015-03-06 23 views
13

Tôi đã cố gắng làm điều này trong khoảng một tuần mà không có cách nào tốt. Tôi đang xây dựng một .dll (UNDONE Engine .dll) phụ thuộc vào Assimp để tải các mô hình. Các .dll biên dịch và liên kết với không có vấn đề gì cả, nhưng khi tôi cố gắng sử dụng nó với một số ứng dụng, tôi nhận được lỗi sau:Làm cách nào để AssImp hoạt động bình thường?

What is this?

'Test_Game.exe' là ứng dụng tôi đưa ra là sử dụng thư viện .dll đang sử dụng assimp.

Tôi đã tải xuống trình bảo mật từ kho lưu trữ sourceforge. Tôi đã nhận được phiên bản 3.0 SDK cho các cửa sổ, cài đặt nó và tôi đã làm bất cứ điều gì là nessesary để có được các dự án liên kết.

Sau đây là cách thư mục với .exe trông giống như:

enter image description here

Tôi đã bao gồm bitness bên phải của lib, đó là phiên bản 32 bit.

Tại sao nó không hoạt động? Có một số lỗi nội bộ bên trong Assimp mà ngăn cản tôi sử dụng nó? Hay có điều gì đó tôi đang thiếu? Là nó gây ra vấn đề bởi vì tôi đang sử dụng nó từ một dll? Bạn có thể vui lòng đưa tôi qua các bước để cài đặt và sử dụng đúng cách không? Tôi sử dụng visual studio 13.

EDIT

Sau khi chạy Dependency Walker qua exe của tôi, tôi có được điều này:

enter image description here

Và tôi có rất ít ý tưởng về những gì các phương tiện đó, nhưng , chỉ cần đoán, có nghĩa là assimp.exe có một số chức năng không xác định?

+0

tại sao dll động cơ của bạn có phụ thuộc vào assimp.exe? Không phải nó chỉ là assimp32.dll? – Dirk

+0

@dirk Tôi không biết tại sao. Tôi đã không tự xây dựng thư viện assimp. –

+0

nhưng bạn bao gồm thư viện. Đó có thể là nơi mà vấn đề là. Vì vậy, kiểm tra nơi bạn thêm phụ thuộc vào IDE của bạn. – Dirk

Trả lời

1

Điều depends.exe cho bạn biết là bảng nhập của undone_engine.dll bao gồm mục nhập cho AssImp.exe, bao gồm mục nhập cho hàm [email protected]@@[email protected] và một số bạn bè. Windows sau đó hy vọng sẽ tìm thấy các hàm [email protected]@@[email protected] và bạn bè trong bảng xuất của AssImp.exe.

Phụ thuộc cũng cho bạn biết rằng không có gì trong bảng xuất AssImp.exe, điều này là không đáng ngạc nhiên vì exe hiếm khi xuất bất cứ thứ gì. Thật thú vị, nó cũng nói với bạn rằng assimp.exe nhập khẩu assimp32.dll.

Bạn có thể có ý định liên kết với assimp32.lib, không phải là assimp.lib. (@Dirk gợi ý này trong các ý kiến; Tôi nghi ngờ anh ta đóng đinh nó.) Bạn có một assimp32.lib mà bạn có thể thử liên kết chống lại thay vì assimp.lib?

Tôi tự hỏi nếu nhập mã AssImp32.dll từ thư viện tĩnh ButtGremlin.lib?/twelveyearold

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