Danielus Opublikowano 23 Maja 2009 Udostępnij Opublikowano 23 Maja 2009 Witam. Mam takii kod w GM: GML global.__MAP_CREATE = external_define('DGE_map.dll', 'DGE_map_create', dll_stdcall, ty_real, 0); kod funkcji w dll'u: export double DGE_map_create( void ) { double var=DGE_map_update(0); return var; } i taki błąd gdy włączam gm'a Error defining an external function. Co tu jest źle? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 23 Maja 2009 Udostępnij Opublikowano 23 Maja 2009 Chyba konwencja wywołania - zmień stdcall na cdecl i sprawdź czy pójdzie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 23 Maja 2009 Autor Udostępnij Opublikowano 23 Maja 2009 Niestety nadal to samo. po za tym czym to się różni? pamiętam że kiedys o tym czytałem ale zdążyłem już zapomniec ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 23 Maja 2009 Udostępnij Opublikowano 23 Maja 2009 Hm, funkcja na pewno dobrze jest eksportowana z DLL-a (możesz się upewnić jakimś softem typu dependency walker) ? Ścieżka do DLL prawidłowa ? ;p Konwencje wywołania różnią się tym, jak parametry są przekazywane do funkcji na stosie/w rejestrach procesora. Standardowo w C++ używa się cdecl, a w Delphi stdcall ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 23 Maja 2009 Autor Udostępnij Opublikowano 23 Maja 2009 A więc tak: -ścieżka do pliku dobra to co mam przed exportem to: #ifndef DGE_MAP_H_ #define DGE_MAP_H_ #include "DGE_map_func.h" #include "DGE_mapa_class.h" #define export extern "C" __declspec(dllexport) więc dlaczego mialoby się zle eksportowac? hmm czyli to mialem zle bo musze miec cdecl ale jak już napisalem to nic nie dalo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 23 Maja 2009 Udostępnij Opublikowano 23 Maja 2009 w czym kompilujesz? bo w Visualu slowo "export" jest zarezerwowane i lepiej uzywac innego. no ale tak czy inaczej, nie powinno to byc przyczyna problemu.. :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 23 Maja 2009 Autor Udostępnij Opublikowano 23 Maja 2009 używam dev c++ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 23 Maja 2009 Udostępnij Opublikowano 23 Maja 2009 Hm, a daj no tą DLL-kę razem z przykładem gm, sprawdzę co jest nie tak ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 23 Maja 2009 Autor Udostępnij Opublikowano 23 Maja 2009 wysłałem na pm^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się