Ahoj, mam v Cecku napsany kod, kterzy vyuziva knihovni funkce z ovladace Touchscreenu. Jedna funkce mi ziskava souradnice doteku, ma sice vice moznosti funkce(okamzite vraceni polohy, po doteku...), ale jedna z nich je, ze po doteku na touchscreen proste vrati souradnice. No a chtel bych tyto C funkce vyuzivat v C# aplikaci, a konat ruzne akce - simulace mysi. Mel bych dve otazecky.
1) Potreboval bych poradit, jakym zpusobem s tim muzu dostat ty funkce do c#. Primo z toho driveru to nedostanu, proto potrebuji ten C kod - mam z toho nejak udelat treba dll knihovnu, nebo nejak jinak udelat to rozhrani? Vim ze existuje neco jako c++/cli, ale do toho se mi moc nechce...
2)Budu mit c# aplikaci a vyvolavat tu funcki, ktera po doteku na Touchscreen vrati to misto doteku kde pak ta c# aplikace vykona treba kliknuti levym tlacitkem. Nebude s tim problem, kdyz beh programu narazi na tu funkci a bude cekat na odezvu o touchscreenu? Nespadne treba ten C# program?
Predem diky za pomoc
Fórum › C / C++
C a C#
1,Moznost tu je. Pomoci System.runtime.InteropService namespace muzes pouzivat funkce z klasicke dll.
Takze si budes muset ten kod predelat na dll a pak si pomoci atributu udelat specialni tridu,ktera bude ty funkce z knihovny volat.
Tady je opravdu maly tutorialek:
http://cgempire.com/forum/tutorials-101/tutorial-c-using-unmanaged-c-dll-4118.html
Jinak hledej vyrazy jako "c# unmanaged dll" a podobne.
2,Tak zalezi,jak to funguje.Pokud opravdu funkce ceka, nez nastane dotek, a pak vrati souradnice, tak jedine,co ti program udela je to,ze se ti proste blokne cele jeho vykonavani,nez nastane dany dotek.
Pokud potrebujes,aby se vykonavaly dalsi veci,tak proste kod obsluhujici tuto dll strcis do nove vlakna.
Oki. Neco uz mi pomohlo.
Narazil jsem na dalsi 2 problemky.
1) Je mozne primo predavat strukturu v C do tridy v C#, nebo to jde pouze vytvorenim stejne struktury v C# a pak az predani nejake tride?
2) Jdou pouzivat v C dll knihovne ve funkcich treba printf(), scanf()... prikazy? mysleno pro aby je spravne prevzal ten C#
1, Osobne sem to nezkousel,ale mam dojem,ze by to melo jit.Budes si vsak muset vytvorit tu samou strukturu i v C#,tomu se nejspis nevyhnes.
2, Teoreticky by to mohlo jit, protoze aplikace ma pouze jedno okno a do toho by se melo vypisovat vse,co jde na vystup.Otestovat to ale bude otazkou asi 15 minut,takze to muzes zkusit.
Mam vsak vyzkousene,ze lze pouzit v C++/CLI (Managed C++) jak printf,tak i Console::Write*
To dannyk :
2) tak zkousel jsem to. Ve funkci v dll knihovne dal nejaky tisk na konzolu a sejmuti vstupu. Pri pouziti v C projektu to bez problemu beha, v C# to ty prikazy pro praci s konzolou uplne vynechava. Takze to nejspise nejde...
Je to mozne,ze to nemusi fungovat,i kdyz je to docela zvlastni.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Jak naprogramovat budík v assembleru 8051? — založil Beer
Omezení importu z Excelu do Accessu podmínkou — založil MeFi100
Automatické dokončování - VisualStudio 2008 — založil Michal
časované upomínky — založil Fonadius
Moderátoři diskuze