CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Wciśnięcie klawisza w obcym programie

Wciśnięcie klawisza w obcym programie

dział ogólny

Re: Wciśnięcie klawisza w obcym programie

Postprzez Corvis » piątek, 29 sierpnia 2014, 20:36

SVMapper albo profilery do Joystików działają bez problemu :(

Ok poczytam o DirectInput
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: Wciśnięcie klawisza w obcym programie

Postprzez Corvis » poniedziałek, 15 września 2014, 13:34

Dobra zacząłem zabawę z DI. Na starcie ZONK bo nie mogę ogarnąć tego błędu:

KOD cpp:     UKRYJ  
#include <InitGuid.h>
#include <dinput.h>

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
        LPDIRECTINPUT8 fDI;
        LPDIRECTINPUTDEVICE8 fDIKeyboard;
        HRESULT hr = DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&fDI, NULL );
}
 


i mam błąd:


[ilink32 Error] Error: Unresolved external 'DirectInput8Create' referenced from C:\USERS\JACEKLAPINSKI\DOCUMENTS\EMBARCADERO\STUDIO\PROJECTS\DINPUT_1\WIN32\DEBUG\UNIT1.OBJ
[ilink32 Error] Error: Unable to perform link



Nie bardzo wiem o co tu chodzi już.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: Wciśnięcie klawisza w obcym programie

Postprzez polymorphism » poniedziałek, 15 września 2014, 13:54

Chodzi tu o to, że nie załączyłeś wymaganej biblioteki importów (*.lib) do projektu. Błąd "Unresolved external ..." występuje wtedy, gdy w kodzie są odwołania do funkcji, której definicji konsolidator nie może znaleźć (czy to w pliku .obj, czy .lib).

Załącz dinput8.lib do projektu. Choć nie wiem, czy to wystarczy, być może trzeba jeszcze dodać inne biblioteki DXowe.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Wciśnięcie klawisza w obcym programie

Postprzez Corvis » poniedziałek, 15 września 2014, 14:12

Ma ktoś może, całą bibliotekę ?
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: Wciśnięcie klawisza w obcym programie

Postprzez polymorphism » poniedziałek, 15 września 2014, 14:37

A co, nie masz jej? Powinna być z innymi bibliotekami dołączonymi do środowiska. Mógłbyś zainstalować sobie SDK DX-a, ale tam, jeśli dobrze pamiętam, biblioteki są tylko pod jedynie słuszny kompilator, więc doopa ;)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Wciśnięcie klawisza w obcym programie

Postprzez Corvis » poniedziałek, 15 września 2014, 14:58

Z tego co wyczytałem wszystko jest w środowisku:

http://realmike.org/blog/articles/using ... -cbuilder/

Problem mam tylko z tym:

DX SDK paths:

Add “<dxsdk>\include” to the include path and “<dxsdk>\lib\Borland” to the libraries path.

Note: The DX SDK paths need to appear prior to the other paths. For example, if you had “$(BCB)\include” as your include path, make it “c:\dxsdk\include;$(BCB)\include”, not the other way round. Change “c:\dxsdk” to whatever path you installed the SDK to.

dxsdk co to jest ? ja nigdzie nie znalazłem u siebie path do DX-a
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: Wciśnięcie klawisza w obcym programie

Postprzez polymorphism » poniedziałek, 15 września 2014, 17:11

dxsdk co to jest ?

To jest ścieżka do katalogu, gdzie masz zainstalowane SDK DirectXa.

ja nigdzie nie znalazłem u siebie path do DX-a

Widocznie musisz zainstalować sobie SDK --> link
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Wciśnięcie klawisza w obcym programie

Postprzez Corvis » poniedziałek, 15 września 2014, 20:24

Wgrałem SDK, dołączyłem include i lib i dalej ten sam błąd :/
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: Wciśnięcie klawisza w obcym programie

Postprzez polymorphism » poniedziałek, 15 września 2014, 22:03

A dodałeś dinput8.lib do projektu? Sprawdzałaś, czy w ogóle w SDK są biblioteki .lib dla C++ Buildera?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Wciśnięcie klawisza w obcym programie

Postprzez Corvis » poniedziałek, 15 września 2014, 22:20

Po dodaniu do projektu dinput8.lib jest:


[ilink32 Error] Error: 'C:\PROGRAM FILES (X86)\MICROSOFT DIRECTX SDK (JUNE 2010)\LIB\X86\DINPUT8.LIB' contains invalid OMF record, type 0x21 (possibly COFF)



Ps. no nie ma żadnego rozróżnienia dla C++ Buildera - załącznik. Ale przecież to są biblioteki dla C++ więc nie ma chyba znaczenia Builder czy Visual czy coś innego.
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: Wciśnięcie klawisza w obcym programie

Postprzez polymorphism » poniedziałek, 15 września 2014, 22:48

Hehe, no to już wiesz, dlaczego C++ Builder jest niefajny :P Obawiam się, że nic tu nie zrobisz, chyba że ktoś gdzieś zrobił biblioteki dla C++ Buildera.

Ale przecież to są biblioteki dla C++ więc nie ma chyba znaczenia Builder czy Visual czy coś innego.

Ma znaczenie, ponieważ każdy z tych kompilatorów ma swój własny format plików .lib i .obj.

Co ciekawe z dekadę temu też miałem problem DirectX'em w Builderze, i to był jeden z powodów dla którego porzuciłem go na dobre. Nie żałuję...

p.s. nie chce mi się wierzyć, że w katalogach Buildera nie ma dinput8.lib (lub numer niżej). Nawet stare wersje środowiska miały podstawowy zestaw bibliotek dla DX'ów.
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
Corvis
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Wciśnięcie klawisza w obcym programie

Postprzez Corvis » wtorek, 16 września 2014, 08:22

Przejrzałem foldery buildera i znalazłem takie coś:

C:\Program Files (x86)\Embarcadero\Studio\14.0\lib\win32\release\psdk\dinput.lib
C:\Program Files (x86)\Embarcadero\Studio\14.0\lib\win32\release\psdk\DINPUT8.lib

Ale kurcze dalej to się nie kompiluje :/
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: Wciśnięcie klawisza w obcym programie

Postprzez Cyfrowy Baron » wtorek, 16 września 2014, 09:09

U mnie po dodaniu biblioteki DINPUT8.lib z bibliotek Buildera, kod kompiluje się bez błędu. Bez dodania tej biblioteki miałem dokładnie ten sam błąd:


A tak to zrobiłem:

KOD cpp:     UKRYJ  
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

#include <InitGuid.h>
#include <dinput.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

#pragma link "dinput8.lib"

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 LPDIRECTINPUT8 fDI;
 LPDIRECTINPUTDEVICE8 fDIKeyboard;
 HRESULT hr = DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&fDI, NULL );
}


KOD cpp:     UKRYJ  
#pragma link "dinput8.lib"

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Corvis
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows 7Firefox

Re: Wciśnięcie klawisza w obcym programie

Postprzez Corvis » wtorek, 16 września 2014, 09:15

Poszło :) dzięki ! no to teraz będzie zabawa :D
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: Wciśnięcie klawisza w obcym programie

Postprzez polymorphism » wtorek, 16 września 2014, 09:20

Haha, czyli po prostu nie załączyłeś dinput8.lib (pisałem o tym od samego początku).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Poprzednia stronaNastępna strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 14 gości

cron