Pisząc moda do Gta V napotkałem problem, którego w żaden sposób nie jestem wstanie rozwiązać. Otóż funkcją do tego przeznaczoną GetModulePath() pobieram ścieżkę głównego katalogu. Zapisuje ją do zmiennej typu std::string. Potem w drugiej zmiennej (Nie wiem po co ale jakoś tak) też typu std::string wpisuję nazwę wtyczki, którą muszę załadować. A potem.
HMODULE plugin = LoadLibraryA((path + plugin_name).c_str()); próbuje załadować tę wtyczkę. Oczywiście tworzę warunek if(!plugin) w którym jest MessageBox, który mnie informuje, ze ładowanie tej wtyczki się nie powiodło. Czy ktoś z Was miał kiedyś tak, że pomimo podawania poprawnej ścieżki do biblioteki nie chciała ona się załadować? Czy byliście wstanie rozwiązać ten problem, a jak tak to w jaki sposób? Podkreślam, ze odtworzenie dźwięku w ten sposób jest możliwe, tylko wtyczki się nie ładują. Byłbym wdzięczny za wszelkie odpowiedzi.
Jaki argument przyjmuje funkcja loadlibrarya ? Ten null na końcu nie psuje ci tego stringa ? Gdy wpiszesz na sztywno ścieżkę jako argument funkcja działa ?
Co do tego ma format dllki? Przecież w programie 64 bitowym podobno można ładować wtyczki 32 bitowe i 64 bitowe i działają one tak, jak powinny.
Hmm, sprawdzę te informacje.
Interesujące. Po użyciu
DWORD msg = GetLastError();
ScriptHookV mi się wysypuje, więc niczego pożytecznego się nie dowiedziałem. nawet MessageBox-a nie wyświetlił :/. GetModulePath zwraca poprawną ścieżkę, czy raczej path + plugin_name. sprawdzałem MessageBoxem.
Tutaj chodzi o to, że Asi Loader w ScriptHookV ładuje mi moją wtyczkę, która dajmy na to nazywa się test.asi. A ja dodatkowo w tej wtyczce potrzebuję załadować coś, co dajmy na to się nazywa plugin.dll. Podaje poprawną ścieżkę i jest błąd.
Dobra, GetLastError() nic nie wyrzuca. Już sam nie wiem co robić
Jeśli możesz, dolinkuj do projektu bibliotekę Shlwapi.lib, masz w niej funkcję PathFileExists. Za jej pomocą sprawdź, czy Twoje plugin_path prowadzi do pliku,
Poza tym, widzę, ze używasz winapi, LoadLibrary ma dwie wersje (ANSi i Unicode), a używasz wersji Ansi. Wg mnie powinieneś używać LoadLibrary, a ustawienia projektu zrobią swoje.