Zajmuje sie projektem rozpoznawania mowy z wykorzystaniem narzedzi dostarczonych przez Microsoft. Moim problemem jest to, ze mam odpowiednie funkcje wyeksportowac do Labview w postaci dll.
Plik dll stworzylam, ogolnie funkcje sie eksportuja w wiekszosci tak jak powinny, ale niestety niektore zwracaja inne wyniki niz gdy wywolywalam je w c++.
jest z funkcji ktore eksportuje wywoluje inna funkcje, ktorej deklaracje przedstawiam ponizej:
HRESULT LoadCmdFromResource(
HMODULE hModule,
const WCHAR *pszResourceName,
const WCHAR *pszResourceType,
WORD wLanguage,
SPLOADOPTIONS Options
);
W Visualu funkcja ta zwraca wartosc:
S_OK czyli Function completed successfully.
Po wywolaniu w Labview otrzymuje
E_INVALIDARG czyli Either pszResourceName or pszResourceType is invalid or bad. It may also indicate hModule could not be found. Alternatively, Options is neither SPLO_STATIC nor SPLO_DYNAMIC.
Fragment kodu w c++ wywolujacy funkcje:
hr = g_cpCmdGrammar->LoadCmdFromResource(NULL, MAKEINTRESOURCEW(IDR_SRGRAMMAR2), L"SRGRAMMAR", MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SPLO_DYNAMIC);
W manualu wyczytalam, ze "Your library call can fail when your external code uses identifiers in place of constants." Tak wiec sprobowalam wywolac ta funkcje wpisujac w miejsce identyfikatorow liczby:
hr = g_cpCmdGrammar->LoadCmdFromResource(NULL, MAKEINTRESOURCEW(1000), L"SRGRAMMAR", MAKELANGID(0x00, 0x00), SPLO_DYNAMIC);
efekt niestety byl bez zmian.
Czy kto moze wie, co moze byc powodem zlego dzialania funckji? Bardzo prosze o pomoc, sprawa jest dla mnie bardzo pilna
wywolywanie funkcji z SAPI do Labview
Re: wywolywanie funkcji z SAPI do Labview
widze ze nie bylo chetnych do odpowiedzi na moje pytanie, ale na szczescie udalo mi sie rozwiazac je samej
Kaska
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Re: wywolywanie funkcji z SAPI do Labview
To poprosimy o podpowiedź, może się komuś przyda 
bogdani

bogdani
Re: wywolywanie funkcji z SAPI do Labview
Odpowiedz jest dosc banalna..
nie dzialala mi funkcja ladowania gramatyki z zasobow.. zastapilam ja wiec funckja ladujaca gramatyke z pliku LoadCmdFromFile do ktorego sciezke podalam jeszcze w dll..
nie dzialala mi funkcja ladowania gramatyki z zasobow.. zastapilam ja wiec funckja ladujaca gramatyke z pliku LoadCmdFromFile do ktorego sciezke podalam jeszcze w dll..
Kaska