Próbuję wywołać bibliotekę DLL C++ z Excel-VBA.Excel VBA: "Błąd wykonania" 49 ': Zła konwencja wywoływania bibliotek DLL "wywoływanie C++ dll
Wiem, że funkcja DLL jest wykonywana, ponieważ wstawiłem fputs() rejestrujące wywołania w celu śledzenia wykonania, a znaczki są wyświetlane w moim pliku dziennika. Problemem jest to, gdy funkcja zwraca DLL, ja się błąd 49.
Oto deklaracja w VBA:
Private Declare Function InitMCR Lib "MCRBoilerplate.dll" Alias "[email protected]@YGXXZ"()
i tu jest deklaracja w C++
__declspec(dllexport) void __stdcall initMCR() { ... }
Dlaczego jestem uzyskanie tego zachowania błędu 49, mimo że połączenia DLL wydają się działać?
OK, wydaje mi się, że źle zinterpretowałem twoją pierwszą wersję zbyt wcześnie, nie będąc poprawnym pytaniem. Teraz widzę, że chciałeś podać kolejne pytania i odpowiedzi, podając rozwiązanie. Polecam umieścić część rozwiązania jako odpowiedź na pytanie. Możesz to zrobić tutaj, jest ważny i zachęcany. –
Rozważ umieszczenie swojego rozwiązania jako odpowiedzi – Niall
@wgrant/OT Uwaga: Nie musisz klikać opcji "zapisz", aby utworzyć kopię zapasową pośrednich wersji swoich edycji (tworzy kopię zapasową wersji roboczych podczas edycji po określonym czasie)). Gdy tylko klikniesz "zapisz", publikujesz swoje rzeczy, a możesz otrzymać downvotes i krytykę na temat faktycznie niedokończonych rzeczy. Przepraszamy za początkowe głosowanie w dół/zamknięcie, ale ogólnie jestes mile widziany. Umieść swoje rozwiązanie jako odpowiedź zgodnie z sugestią, a ja nawet zgodzę się z obydwoma. –