Tôi đang cố gắng gọi một DLL C++ từ Excel-VBA.Excel VBA: "Lỗi thời gian chạy '49': Quy ước gọi sai DLL" gọi C++ dll
Tôi biết chức năng DLL đang được thực hiện khi tôi chèn các lệnh gọi hàm fputs() để theo dõi việc thực hiện và các dấu hiện đang hiển thị trong tệp nhật ký của tôi. Vấn đề là, bất cứ khi nào trở về chức năng DLL, tôi nhận được Lỗi 49.
Đây là tuyên bố trong VBA:
Private Declare Function InitMCR Lib "MCRBoilerplate.dll" Alias "[email protected]@YGXXZ"()
và đây là việc khai báo trong C++
__declspec(dllexport) void __stdcall initMCR() { ... }
Tại sao tôi nhận hành vi Lỗi 49 này, mặc dù các cuộc gọi DLL dường như đang hoạt động?
OK, có vẻ như tôi đã hiểu sai phiên bản đầu tiên của bạn quá sớm không phải là câu hỏi hợp lệ. Bây giờ tôi thấy, bạn muốn cung cấp một Giải Đáp khác bằng cách đưa ra giải pháp. Tôi khuyên bạn nên đặt phần giải pháp của bạn như một câu trả lời cho câu hỏi. Bạn có thể làm như vậy ở đây, nó hợp lệ và được khuyến khích. –
Xem xét việc đăng giải pháp của bạn dưới dạng câu trả lời – Niall
@wgrant/OT Lưu ý: Bạn không cần phải nhấp vào 'lưu' để tải phiên bản trung gian của các chỉnh sửa của bạn được sao lưu tại đây (SO sao lưu thư nháp của bạn trong khi bạn đang chỉnh sửa sau một thời gian nhất định). Ngay sau khi bạn nhấp vào 'lưu', bạn đang xuất bản nội dung của mình và bạn có thể nhận được những đánh giá và phê bình về nội dung thực sự chưa hoàn thành của mình. Xin lỗi cho các phiếu bầu xuống/đóng ban đầu, bạn được chào đón nói chung. Đặt giải pháp của bạn như là một câu trả lời như gợi ý, và tôi thậm chí sẽ upvote cả hai của nó. –