Tôi có một chức năng kinh doanh JD Edwards, được viết bằng Microsoft Visual C++ dưới dạng mô-đun C. Tôi đang sử dụng LoadLibrary để truy cập một DLL của bên thứ ba. Trong một chương trình thử nghiệm độc lập, mã chạy tốt. Khi tôi chạy nó từ bên trong JDE, LoadLibrary trả về NULL và GetLastError trả về 126, có nghĩa là The specified module could not be found
theo MSDN. Tôi đã thử đưa vào đường dẫn đầy đủ để DLL, và có tôi đã nhớ để tăng gấp đôi lên các ký tự \ trong đường dẫn. Không khác nhau.Điều gì có thể ngăn không cho DLL tải với LoadLibrary?
Tôi đã kiểm tra để đảm bảo không có phụ thuộc nào có thể ngăn DLL tải; DUMPBIN/DEPENDENTS trả về những điều sau đây:
WSOCK32.dll
USER32.dll
GDI32.dll
WINSPOOL.DRV
ADVAPI32.dll
KERNEL32.dll
Những giao diện này giống như Windows DLL chuẩn, vì vậy tôi thua lỗ.
Đã lâu lắm rồi kể từ khi tôi cần nó, tôi hoàn toàn quên mất Dependency Walker. Nó nói rằng tôi thiếu một sự chậm trễ tải dwmapi.dll DLL, mà tôi hiểu là Vista chỉ. Tôi không nghĩ đó là vấn đề, nhưng cảm ơn con trỏ. –
Làm thế nào về việc di chuyển dll vào một thư mục trên đường dẫn của bạn như% windir% \ system32? –