praegune kellaaeg 23.05.2024 05:39:31
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
kalvis
Kreisi kasutaja
liitunud: 20.10.2009
|
11.03.2020 11:48:05
Windows include failid, kust alla laadida? |
|
|
eellugu on kõrvalteemas HID device interface programmeerimine. Kuni attribuutide väljalugemiseni (ID, serial ja string) toimib suurepäraselt siis mistahe data struktuuri (GetPreparsedData) väljalugemise funktsiooniga teeb programm exit ilma igasuguse veateateta. Üks võimalus on et M$ kui üritad PreparsedData viita sättida siis teatud HID seadmetele (klaviatuurid, hiired) ei luba seda ja "lolli" lahenduse (bug) tõttu teebki exit.
Seega üritasin läheneda ühe teise librariga RW_Input funktsioonidega.
Kuid probleemiks on, et need nõuavad include <winuser.h> või <windows.h> , see omakorda järgmist jne. Ja siis ühes libraris on hoopis C++ (õigemini visual stusio) M$ konstruktsioonid sees nagu _In_ ja _Out_ (ja teised) mistõttu kompileerimine ebaõnnestub.
Küsimus kust kohast oleks kõige parem saada/alla tõmmata MS Windows API jaoks neid include faile (soovitavalt kõiki, sest soov on muidki winapi funktsioone kasutada/avastad)mis töötaksid MinGW kompilaatoriga. Netis on mustmiljon projekti Github jt. kus on need include failid sees aga mingil põhjusel ikkagi kõigil on erinevused ja kõigil sama kiiks - lõpeb veateatega (kuna _In_ pole).
Pisike lisaküsimus - kas on ka olemas lihtne tüübifail, nimelt M$ kasutab mitte C päraseid tüüpe nagu BOOL, UINT, DWORD jne. kas on olemas include fail kus on kõik M$ visual C võimalikud tüübid ära deklareeritud. Ei viitsi iga kord teha seda typedef käsku ja käsitsi neid tüüpe defineerida.
|
|
tagasi üles |
|
|
Supiplex
HV veteran
liitunud: 11.12.2002
|
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
|
kalvis
Kreisi kasutaja
liitunud: 20.10.2009
|
12.03.2020 12:53:53
|
|
|
Sain lõpuks windows SDK installitud ja seal on tõepoolest pea kõik include failid olemas.
Install ise oli seebiooper - tahtis saada .NET framenetwork, installisin kohe laksust 4.8 versiooni, ütleb, et ikka ei ole, proovisin 4.5 versiooni, see karjub, et uuem olemas, SDK jälle, et pole. Lõpuks tegin .NET full uninstall siis installisin 4.5 ja siis SDK oli rahul.
Õieti tabasin ära, et visual Studio tuli ka installida - osad included on seal olemas.
Kuid kahjuks nii lihtne see pole. Visualis kasutatakse mingeid eriti hulle typedef deklareerimist, leiab, et järgmine rida on vigane:
typedef _W64 unsigned int uintptr_t;
Kogu include fail kubiseb sarnastest vigadest:
typedef _W64 long __time32_t;
jne...
Mõistus otsas.
Kui midagi head ei tule siis tuleb üles otsida vaid funktsiooni prototüüp ja struktuur, no on vastikult kokku pandud need winduws included.
|
|
tagasi üles |
|
|
Supiplex
HV veteran
liitunud: 11.12.2002
|
12.03.2020 14:04:22
|
|
|
Mul endal kogemus puudu, aga arvata võib et kui sa ei ehita koodi Visual Studio-s, siis seda võimlemist vist veidi jagub.
Ma alustuseks üritaks mingi howto dokumente otsida, mis selgitavad kuidas Windowsi SDK-d MinGW kaudu pruukida saab.
Sa included ikka WinSDK top level headerit?
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
|
andresv
HV kasutaja
liitunud: 06.12.2004
|
17.03.2020 10:35:12
|
|
|
kuna mõlemas su näites on "_W64 " siis eeldaks, et sul kusagil 32bit platform määratud aga include failid võtab 64bit omad.
Kahjuks fiximise osas aidata ei oska
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|