Anonymní profil Kapa – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Kapa – Programujte.comAnonymní profil Kapa – Programujte.com

 

Příspěvky odeslané z IP adresy 109.80.156.–

Kapa
C / C++ › DLL - Návrh USB driveru
6. 5. 2014   #189870

Ahoj,

 mám ještě obecný dotaz. Raději jsem vytvořil nové vlákno, ať se to nemotá dohromady s předšlým.

Vyvinul jsem digitální I/O kartu připojenou přes USB 2.0 jako USB Device Vendor Class. Jako ovladač používám libusbK. Potřebuji navrhnout DLL s API rozhraním umožňující práci s připojenými USB kartami.

Nevím, jak správně vytvořit knihovnu, aby byla Thread-save. K PC může být připojená víc jak jedna karta. Tedy API funkce budou mít jako jeden parametr index značící se kterou kartou chce aplikace pracovat. Index dané karty si zjistí na počátku na základě sériového čísla karty (buď bude aplikace znát nebo si vyčte z knihovny všechny připojené zařízení). -- Nesmí dojít k tomu, že se budou stejné nebo rozdílné funkce pro jednu kartu volat v jednom okamžiku. Obdobně je třeba to samé řešit pokud dva nezávislé procesy budou chtít přistupovat k jedné kartě (to nesmí).

No zatím si to představuji tak, že budu mít nějaký globální list struktur (handle na mutex, aktualni konfigurace,  stavové proměnné) reprezentující jednotlivé karty. Pokud bude aplikace chtít použít danou kartu, tak se vytvoří mutex  (tedy nejen vlákna ale i ten druhý proces/aplikace bude vědět, že karta je využívána). Samotný globální list by taktéž měl být chráněn mutexem. -- Nevím jestli je to nejšťastnější řešení. Co myslíte?

Kapa
C / C++ › DLL - DLLMain
6. 5. 2014   #189869

  , máte pravdu, vůbec jsem nevšiml, že je tam nemám..., diky 

Kapa
C / C++ › DLL - DLLMain
6. 5. 2014   #189866

Jsem to nepopsal asi moc dobře včera: 

DLL:
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
			printf("DLL_PROCESS_ATTACH \n");
		case DLL_THREAD_ATTACH:
			printf("DLL_THREAD_ATTACH \n");
		case DLL_THREAD_DETACH:
			printf("DLL_THREAD_DETACH \n");
		case DLL_PROCESS_DETACH:
			printf("DLL_PROCESS_DETACH \n");
			break;
	}
	return TRUE;
}

DWORD DIO_Initialize()
{
	printf("From DLL \n");
	return 1;
}

C#:
Console.Write("Ret val 1: " + DIO_Initialize() + "\n");
Thread.Sleep(500);
Console.Write("Ret val 2: " + DIO_Initialize() + "\n");

Vypis z console:
DLL_PROCESS_ATTACH
DLL_THREAD_ATTACH
DLL_THREAD_DETACH
DLL_PROCESS_DETACH
From DLL
Ret val 1: 1
From DLL
Ret val 2: 1
DLL_PROCESS_DETACH

Pokud do funkce  DIO_Initialize vložím smyčku s výpisem do console (+ sleep 2s), tak dojde k zavolani DllMain i behem vykonavani funkce. Můj selský rozum mi říká, že to nedává smysl, respektive si nedokazu predstavit cokoliv vykonavat v DllMain pri takoveto podivne posloupnosti volani.

DLL_PROCESS_ATTACH
DLL_THREAD_ATTACH
DLL_THREAD_DETACH
DLL_PROCESS_DETACH
From DLL
From DLL
From DLL
From DLL
From DLL
From DLL
From DLL
From DLL
From DLL
From DLL
Ret val 1: 1
From DLL
From DLL
From DLL
From DLL
From DLL
DLL_THREAD_ATTACH
DLL_THREAD_DETACH
DLL_PROCESS_DETACH
DLL_THREAD_ATTACH
DLL_THREAD_DETACH
DLL_PROCESS_DETACH
DLL_THREAD_ATTACH
DLL_THREAD_DETACH
DLL_PROCESS_DETACH
From DLL
From DLL
From DLL
From DLL
From DLL
Ret val 2: 1
DLL_PROCESS_DETACH
Kapa
C / C++ › DLL - DLLMain
6. 5. 2014   #189862

 Ahoj,

vytvářím DLL knihovnu v C, kterou mám pak přilinkovanou v C#  aplikaci. Podle popisu MSDN jsem myslel, že chápu jak funguje DLLMain, ale když jsem si nechal stavy vypsat do consoly, tak mi to nedává moc smysl. Tak například když zavolám funkci z knihovny, tak výpis z consoly vypadá následovně:

DLL_PROCESS_ATTACH
DLL_THREAD_ATTACH
DLL_THREAD_DETACH
DLL_PROCESS_DETACH
pokracuje vypis jiz ze samotne funkce

Jak to, že funkce se vykonána, až po  DLL_PROCESS_DETACH?

Proč i během vykonávání funkce dochází  k DLL_PROCESS_ATTACH a  DLL_PROCESS_DETACH?

diky

XP
.NET › VS2008: Template s wizardem
30. 10. 2013   #183032

Ahoj,
potřebuji ve Visual Studiu 2008 vytvořit template s wizardem, což jsem více méně udělal podle [url]http://msdn.microsoft.com/en-us/library/vstudio/ms185301.aspx[/url]. Problematické jsou poslední kroky: moje DLL s wizardem se musí nakopírovat do windows/assembly, což vyžaduje admin práva. Poté se musí zkopírovat public token key zpět do vytvořeného templatu.

Templaty (sdílené přes SVN) bude používat několik uživatelů, jenž nemají admin práva a je tedy cílem použití templatů pokud možno co nejvíce zjednodušit, pak tedy:
1) Lze nějak obejít anabáze s kopírováním do GAC (windows/assembly)?
2) Pokud si to bude muset každý uživatel (různé PC) sám nakopírovat, pak budeme mít všichni stejný public token key, protože jinak to znovu bude znamenat ruční zásah od každého uživatele?

PS: Nemohu přijít na to, proč na mém PC (Win 7 64 bit, v práci Win 7 32 bit) nejde žádným způsobem (vše jako admin: zkopírovat, nebo s použitím gacutil.exe) dostat moje DLL do GAC, respektive když si otevřu windows/assembly tak tam není moje DLL vidět, i když je tam nakopírován a gacutil vypíše "Assembly successfully added to the cache".

díky

XP
Offtopic › Soutěž - prosím o podporu: O…
24. 3. 2013   #173264

Ahoj,
chtěl bych se dostat o něco blíž mému milovanému Marsu. Pomozte mi s tím prosím. Odkaz v opeře nefunguje správně (alespoň mně), tedy případně zkuste jiný prohlížeč. Mělo by to odkazovat přímo na můj profil: [url]https://www2.axeapollo.com/cs_CZ/329196/milan-korinek?image=0#.UU92re8rioo.facebook[/url]

S vřelým díky XP s duchem již na Marsu

PS: [url]http://imaginaryworld.xf.cz/img/other/mars.jpg[/url]
PS: Šiřte prosím odkaz pro mou podporu mezi přáteli. Mockrát Vám děkuji  :)

Alman
Offtopic › Popisovací tabule
4. 3. 2013   #172310

diky za napady, uvidim co se podaři sehnat :)

Alman
Offtopic › Popisovací tabule
2. 3. 2013   #172223

Ahoj,
nepoužíváte někdo popisovací tabule? Má někdo zkoušenosti s touto tabulí: http://www.alera.cz/…120/d372636/ ? Nezkoušel jste někdo obyčejné plexisklo či jiný plast?

Díky

Alman
.NET › Problém s vykreslováním
1. 3. 2013   #172216

Ahoj,

mám User Control, na který vykresluji stromovou strukturu uzlů (User Control) spojených čárami. Mám zapnutou vlastnost AutoScroll. Vše je v pořádku dokud se nevykresluje strom tak velký, že se nevleze do viditelné oblasti. Z nějakého důvodu se spojovací čáry vykreslují jinam než mají při scrolování.

Pro lepší představu obrázek: http://imaginaryworld.xf.cz/img/other/program.png

Čáry se vykreslují ve funkci OnPaint: 

protected override void OnPaint(PaintEventArgs e)
        {
            Graphics grfx = e.Graphics;

            if (_tree.Count == 0) return;
            
            foreach(tNode node in _tree.Values)
            {
                foreach (tLine line in node.GetNodeWiresList())
                {
                    grfx.DrawLine(Pens.Red,line.P1,line.P2);
                }
            }
        }

Souřadnice jak spojovacích čar tak uzlů jsou v pořádku. Nevíte, kde by mohla být chyba?

XP
.NET › Události
21. 1. 2013   #170451

Události jsou navázané na třídu A, ale handlery na ty události se předávají postupně z třídy A až do C (D).

Třídy po sobě nedědí, ale mají pouze jejich instance.

No abych to uvedl názorněji:

Třída A: je datový strom - načítá data z disku, zobrazuje data uživateli, algoritmy pro práci se stromem.

Třída B: uzel, list stromu - základní informace, rodič a seznam potomků

Třída C: komponenta - pouze zobrazuje základní info uživateli, vyvolá událost při stisku tlačítko např. přidat uzel, přidat data, smazat uzel

Třída D: Editor uzlu  

XP
.NET › Události
21. 1. 2013   #170441

Zajímala by mě ještě jedna věc:

Mám třídu A. Tato třída A má několik instancí třídy B. Každá třída B má ještě instanci třídy C. Třída C generuje několik událostí (zatím 5). Nakonec třída C má instanci třídy D, která může taky vyvolat událost. Tyto události jsou třeba odchytit ve třídě A. 

Obslužné metody třídy A jsou předávány postupně přes třídy B, C popř. D, kde jsou potom přidány do instance události. Je toto správné řešení? Nebo se to dělá jinak, aby to zbytečně nemuselo probublávat přes všechny třídy?

XP
.NET › Události
19. 1. 2013   #170366

uz jsem na to prisel :). Chyba byla jinde. V metode _visualNode.RefreshVisual(); ktera chtela precist data z neicializovane promenne - zajimave ze to nehodilo zadnou vyjimku/chybu. 

XP
.NET › Události
19. 1. 2013   #170364

Zdravím,

mám několik instancí stejných grafických prvků na formuláři. Potřeboval bych, aby všechny prvky odchytily vyvolanou událost. Problém je, že událost se vyvolá pouze u prvku, který byl přidán jako první.

Hlavní třída:



...
private delegate void dRefreshVisualNodes();
private event dRefreshVisualNodes RefreshVisualNodes;
...
private void AddNodeToTree(tNode<T> node) // vola se spravne pro vsechny prvky
        {
            _tree.Add(node.id, node);                                   
            RefreshVisualNodes += node.Refresh;                         
            _treeDiagram.Controls.Add(node.GetVisualNode());            
        }
...


private void DrawTree()
        {
            ...
            RefreshVisualNodes();
        }

 Grafický prvek:

public class tNode<T>
    {
	...
	public void Refresh()
        {
            _visualNode.RefreshVisual();
        }
	...
    }

Nevite, kde by mohl byt problem? 

XP
.NET › ASP.net - rozbalovací menu
28. 11. 2012   #167789

No zatim jsem to "vyresil" oklikou. 

Původně jsem si do MenuItem.value ukládal pouze id pro identifikaci hlavních položek menu. Teď si tam ukládám i adresu URL odkazu (což pak musím zase v kódu řešit a rozdělit string pomocí funkce split, což mi přijde takové celé nečisté řešení). Pokud teda nemá hlavní položka submenu, pak se přejde na danou stránku přímo z kódu, takže nemusím nastavovat NavigateURL. V opačném případě se vytvoří submenu.

Jinak menu načítám z DB. Ještě to nějak naskinovat, což dopadne hůř než kód   .

XP
.NET › ASP.net - rozbalovací menu
28. 11. 2012   #167784

diky,

Mám menší problém s asp.net menu. Pokud položky menu mají nastavený NavigateURL, pak se nevyvolá událost OnMenuItemClick. Jak to udělat aby došlo k OnMenuItemClick i v tomto případě?

<asp:Menu ID="MainMenu" runat="server" StaticDisplayLevels="3" OnMenuItemClick="MainMenu_click">

            <Items>
            <asp:MenuItem Text="File" Value="File">
                <asp:MenuItem Text="New" Value="New"></asp:MenuItem>        <!-- Po cliknutí dojde k události  -->
                <asp:MenuItem Text="Open" Value="Open" NavigateUrl="~/neco.aspx"></asp:MenuItem>      <!-- Po cliknutí nedojde k události  -->
            </Items>
        </asp:Menu>
XP
.NET › ASP.net - rozbalovací menu
28. 11. 2012   #167755
XP
C / C++ › Github a projekt
13. 11. 2012   #166621

No zrovna s kolegou ve škole jsme zkusili použít na náš projekt GitHub. Webové rozhraní je super, ale klient je už horší. Zkusil jsem vyvolat tebou uvedený konflikt a moc dobře to nedopadlo. V GUI neumožňuje merge a ani si stahnout aktualni verzi ze serveru a zmeny prekopirovat rucne. GitHub nepovolil ani commit jinych souboru bez konfliktu. Jinak je k dispozici Git Shell pomoci ktereho by se dali vyresit tyto pripady (nezkousel jsem). 

XP
.NET › Rozšiřitelná aplikace
11. 11. 2012   #166478

diky, uz to funguje

XP
.NET › Master page - ASP.net
26. 9. 2012   #163776

Díky, vyřešeno

XP
.NET › Master page - ASP.net
26. 9. 2012   #163770

Pochopil jsem, že je třeba přidat tildu, ale teď se obrázek nenačte vůbec.

<img src="~/images/img.png" alt="Prevodnik" width="194" height="77" />
XP
.NET › Master page - ASP.net
26. 9. 2012   #163767

Zdravím,

původní web jsem měl udělaný pomocí rámů, nyní se jej snažím překopat pomocí master page. V kořenovém adresáři mám /Default.master a /Default.aspx. Potud vše funguje, jak má. Problém je, že některé stránky jsou umístěné v dalších adresářích např. /clanky/clanek.aspx, což způsobí, že cesty např. k obrázkům, odkazy uvedené v master page jsou neplatné. Jak to lze nějak elegantně řešit?

Díky

xp
C / C++ › GNU fonty v C
20. 5. 2012   #158198
xp
C / C++ › GNU fonty v C
20. 5. 2012   #158178

Zdravím,

potřebuji vykreslovat text na můj LCD displej připojený k mé vývojové desce. Potřebuji na něj vypisovat text, ale nedaří se mi najít fonty (ideálně pod GNU, popř. Free). Postačí pouze 128 poř. 256 znaků ASCII. Ideálně více velikostí, ale postačí s velikostí 8x16.

Díky

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý