kt1117 Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 Mam pytanie. Jak zapisać dll? Jak próbuje skompilować to wyskakują błędy, a skopiowałem kod po prostu z art. na gmclanie i zrobiłem wszystko co tam pisali. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 no ale jaki błąd może powiesz? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 A może pokaż kod i treść błędów? o_O Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 czyli mamy zgadywać... niech zgadne... notatnik nie kompiluje? :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 7 Listopada 2010 Autor Udostępnij Opublikowano 7 Listopada 2010 Kod to: #include<windows.h> #define export extern "C" __declspec(dllexport) export double GMBeep( double a1, double a2 ) { Beep( a1, a2 ); } export char* GMText( void ) { return "Jakis tekst przekazany przez funkcje biblioteki."; } export double GMAdd( double l1, double l2 ) { return l1 + l2; } a błąd: [Linker error] undefined reference to `WinMain@16' ld returned 1 exit status Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 jak by to powiedzieć... błąd linkowania... jaki projekt utworzyłeś? winapi czy dll? ide dev c++? vc++? czy co innego? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 Prawdopodobnie kompilujesz ten kod jako aplikacje Windows/GUI a nie jako DLL. Nie wiem czego używasz jako IDE, ale w opcjach projektu powinno dać się przestawić. Dev C++: http://www.ibm.com/developerworks/webspher.../devcppOpts.gif Code::Blocks: http://www.noquarterarcade.com/system/file...gets_dialog.png (menu "Type" z prawej strony) Albo utwórz nowy projekt z szablonu DLL. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 7 Listopada 2010 Autor Udostępnij Opublikowano 7 Listopada 2010 Działa dzięki, trzy razy ustawiałem to głupie linkowanie, ale chyba nie zatwierdzałem czy co a teraz śmiga! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 poprostu kompilowałeś na exeka... a kod na dllke :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 7 Listopada 2010 Autor Udostępnij Opublikowano 7 Listopada 2010 To żeby temat nie ostygł zadam jeszcze jedno pytanie :) . Wyczytałem w tutku, że deelką mogę przesłać tylko tekst - char i liczbę - double. Załatwia to sprawę jakiś obliczeń matematycznych, ale czy da się w ten sposób przekazać funkcję np. symulację wciśnięcia klawisza? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 mozesz przesłać informacje czy jest wciśnięty :] gm odbiera i już kodem sobie ustawiasz. Nie jest powiedziane że tylko text i cyferki... możesz przesłać wszelkie uchwyty itp przekonwertowane na double a nastepnie wysylac je do dll'i, spowrotem do swojego typu i normalnie na tym działać :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 No cóż, nie znam się za bardzo na C++, ale wydawało mi się, że funkcja z DLL może zwracać też wartość typu boolean. A każdy klawisz na klawiaturze ma swoją reprezentację w kodzie ASCII. Zapewne bardziej napsułem niż pomogłem, ale też się uczę... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 7 Listopada 2010 Autor Udostępnij Opublikowano 7 Listopada 2010 To jeszcze ostatnie pytanie. Jak można użyć struktury INPUT, bo jak wpisałem taki kod: INPUT klaw; ZeroMemory(&klaw, sizeof(INPUT)); klaw.type = INPUT_KEYBOARD; klaw.ki.wVk = 0x34; SendInput(1, &klaw, sizeof(INPUT)); wyskoczył mi błąd: 7 E:\Dev-Cpp\dela.cpp `INPUT' does not name a type 8 E:\Dev-Cpp\dela.cpp expected constructor, destructor, or type conversion before '(' token 8 E:\Dev-Cpp\dela.cpp expected `,' or `;' before '(' token 9 E:\Dev-Cpp\dela.cpp expected constructor, destructor, or type conversion before '.' token 9 E:\Dev-Cpp\dela.cpp expected `,' or `;' before '.' token 10 E:\Dev-Cpp\dela.cpp expected constructor, destructor, or type conversion before '.' token 10 E:\Dev-Cpp\dela.cpp expected `,' or `;' before '.' token 11 E:\Dev-Cpp\dela.cpp expected constructor, destructor, or type conversion before '(' token 11 E:\Dev-Cpp\dela.cpp expected `,' or `;' before '(' token Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 a powiedz mi jedno: dodałeś bibliotekę odpowiedzialną za owe funkcje? :D I ogólnie pokaż kod... jak to opakowałeś Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 7 Listopada 2010 Autor Udostępnij Opublikowano 7 Listopada 2010 Dołączyłem windows.h ,bo sprawdziłem w msdns i tam było napisane że w tej bibliotece zawarte są te funkcje. Oto kod: #include <string> #include <vector> #include<windows.h> #define export extern "C" __declspec(dllexport) export double GMsym(void) { INPUT klaw; ZeroMemory(&klaw, sizeof(INPUT)); klaw.type = INPUT_KEYBOARD; klaw.ki.wVk = 0x34; SendInput(1, &klaw, sizeof(INPUT)); } export double GMBeep( double a1, double a2 ) { Beep( a1, a2 ); } export char* GMText( void ) { return "Jakis tekst przekazany przez funkcje biblioteki."; } export double GMAdd( double l1, double l2 ) { return l1 + l2; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
programista Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 Z tego co pamiętam windows.h to plik nagłówkowy, a nie biblioteka... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 7 Listopada 2010 Autor Udostępnij Opublikowano 7 Listopada 2010 A jaka jest nazwa biblioteki? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 windows.h chyba nie wystarczy... kiedyś pisałem coś takiego... nie pamiętam biblioteki... poszukaj :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
programista Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 Nie pamiętam jaka nazwa bo ostatni raz odpalałem kompilator 2 lata temu. Generalnie biblioteki mają rozszerzenie: .lib, z tego co widzę błąd wywala Ci linker więc najprawdopodobniej nie dodałeś biblioteki w opcjach projektu... P.S. Aha jak korzystasz z dev-cpp czy code::blocks to rozszerzenie będzie .a czy coś takiego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 biblioteki mają rozszerzenie dll... liby mają format .lib... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
programista Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 A rozwiń kolego skrót lib. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 7 Listopada 2010 Udostępnij Opublikowano 7 Listopada 2010 no tak... to jest biblioteka... tyle że głownie linkuje funkcje z biblioteki dll... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 12 Listopada 2010 Autor Udostępnij Opublikowano 12 Listopada 2010 Nie wiem czemu, ale znalazłem w msdns funkcją input i tam było napisane że biblioteka to user32.lib więc znalazłem sobie tą bibliotekę i podłączyłem towszystko tak: a i tak nie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 12 Listopada 2010 Udostępnij Opublikowano 12 Listopada 2010 fajnie... dodałeś lib... ale include to jest? ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 12 Listopada 2010 Autor Udostępnij Opublikowano 12 Listopada 2010 Czyli co mam zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MagnusArias Opublikowano 12 Listopada 2010 Udostępnij Opublikowano 12 Listopada 2010 #include <windows.h> #include <windowsx.h> Te dwie biblioteki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 12 Listopada 2010 Autor Udostępnij Opublikowano 12 Listopada 2010 Dalej nie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 12 Listopada 2010 Udostępnij Opublikowano 12 Listopada 2010 zapodaj cały projekt( spakuj do rar czy tam zip i dawaj :D ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 12 Listopada 2010 Autor Udostępnij Opublikowano 12 Listopada 2010 Projekt. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 12 Listopada 2010 Udostępnij Opublikowano 12 Listopada 2010 loool... cały projekt - plik projektu, pliki *.cpp, *.h itp... wszystko... 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ę