Favicon Svethardware.cz  Svět hardware   Fórum Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Strana 2 z 2 PrvníPrvní 12
Zobrazené výsledky: 16 až 27 z 27

Téma: Tisk pres IrDA

  1. #16
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    nemel jsem ten SetLastError u importu samozrejme ops:
    takze chybka je WSAENOTSOCK (10038) :
    Socket operation on nonsocket.
    An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.


    takze to vypada, ze Socket.Handle je nejaky podivny... zkusim jeste pres reflector vypatrat neco vic...

    pro uplnost jeste aktualni verze zkusebniho kodu:
    Kód:
    <div class="cf"><p class="cl">* * [DllImport("winsock.dll", EntryPoint="setsockopt", SetLastError=<span class="cb1">true</span>)]</p><p class="cl">* * <span class="cb1">public</span> <span class="cb1">static</span> <span class="cb1">extern</span> <span class="cb1">int</span> setsockopt(<span class="cb1">int</span> s, <span class="cb1">int</span> level, <span class="cb1">int</span> optname, <span class="cb1">byte</span>[] optval, <span class="cb1">int</span> optlen);</p><p class="cl">*</p><p class="cl">* * <span class="cb1">private</span> <span class="cb1">void</span> button2_Click(<span class="cb1">object</span> sender, System.EventArgs e)</p><p class="cl">* * {</p><p class="cl">* * * <span class="cb1">int</span> SOL_IRLMP = 0x00FF;</p><p class="cl">* * * <span class="cb1">int</span> IRLMP_IRLPT_MODE = 0x00000015;</p><p class="cl">* * * Socket s = <span class="cb1">new</span> Socket(AddressFamily.Irda, SocketType.Stream, ProtocolType.IP);</p><p class="cl">* * * <span class="cb1">int</span> ret = setsockopt((<span class="cb1">int</span>)s.Handle, SOL_IRLMP, IRLMP_IRLPT_MODE, <span class="cb1">new</span> <span class="cb1">byte</span>[]{1}, 1);</p><p class="cl">* * * <span class="cb1">if</span> (ret != 0)</p><p class="cl">* * * {</p><p class="cl">* * * * <span class="cb1">int</span> errm = Marshal.GetLastWin32Error(); <span class="cb2">// = 10038</span></p><p class="cl">* * * }</p><p class="cl">* * }</p></div>
    Odpovídat lze po přihlášení

  2. #17
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Muj odhad je, ze mate handle "spatne - jine" verze WSA.

    Zkuste importovat funkci setsockopt z knihovny Ws2_32.dll, pripadne jen WS2.dll
    Odpovídat lze po přihlášení



  3. #18
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Aha, to jsme se docela sesli v popisu problemu
    Odpovídat lze po přihlášení

  4. #19
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    zkusil jsem ted setsockopt z ws2.dll a vysledek stejny - ret == -1, chyba stale 10038 (
    Odpovídat lze po přihlášení

  5. #20
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    btw koukal jsem ted do zdrojaku tridy Socket, resp. interni tridy OSSOCK, ktera vola unmanaged funkce pro manipulaci se sockety a zarazi mne trochu, ze se nevola primo knihovna winsock/ws2, ale mscoree... Ani parametry presne nesedi s tim, co je v popisu socket na msdn (4 parametry misto 3). Da se nejak zjistit, co presne mscoree vola?

    Pri vytvareni new Socket(...) se handle nastavuje na vysledek funkce OSSOCK.socket(...), ktera je nadefinovana jako:

    [DllImport("mscoree", EntryPoint="@289")]
    public static extern int socket(int af, int type, int proto, ref int rc);

    jeste mne ted napadlo vytvorit si socket pres P/Invoke (handle = winsock->socket()) a v C# pak vytvorit objekt Socket = new Socket(handle), ale pochybuju, ze pak bude takovy objekt spravne fungovat...
    Odpovídat lze po přihlášení

  6. #21
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    MS ma ruzne nedokumentovane zkratky pres knihovny, ale myslim, ze ta funkce je jen proxy k ws2.dll, takze nerozumim tomu, proc to nechodi. ve velkem Frameworku nemam problem, zkousim to jeste ted primo v CNF
    Odpovídat lze po přihlášení

  7. #22
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Tak zacinam mit podezreni, ze socket v Compact .NEt Frameworku nevystavuje nativni handle - coz by znamenlo, ze WSA nebude fungovat. To by byl ale fakt spatnej vtip
    Odpovídat lze po přihlášení



  8. #23
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    jo, taky jsem dospel k nazoru, ze si v mscoree vyrobi nejaky svoje handle a to nativni uz se clovek proste nedozvi
    doufam, ze aspon v CF2 je tohle opraveny - uz jenom ta hloupost, ze se pres Socket.SetSocketOption() neda nastavit vsechno, co sockety podporujou ://
    Odpovídat lze po přihlášení

  9. #24
    Občasný diskutér
    Registrace
    Jun 2005
    Příspěvků
    61

    a jeste posledni vec, co mne napadla - jestli nahodou ten ctvrty ref parametr v OSSOCK.socket() neni to nativni handle... nedari se mi ale pouzit tu funkci z mscoree, ktera se pouzije pro OSSOCK.socket() -> MissingMethodException. jakto, kdyz to ze systemovych knihoven jde??

    [DllImport("mscoree", EntryPoint="@289")]
    public static extern int socket(int af, int type, int proto, ref int rc);

    int i = 0;
    int ret = socket((int)AddressFamily.Irda, (int)SocketType.Stream, (int)ProtocolType.IP, ref i); // -> MissingMethodException
    Odpovídat lze po přihlášení

  10. #25
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Tak jsem ted vyzkousel,. co se dalo a zadny vysledek. Napadaji me jen takovy zverstva, jako podhozeni jine dll se stejnym seznamem ecportovanych funkci a reimplementaci vytvareni soketu.

    Vznesu pozadavek na MS - narazil jste na docela neprijemny problem
    Odpovídat lze po přihlášení

  11. #26
    Nováček
    Registrace
    May 2006
    Příspěvků
    1

    Take se marne snazim o vyvoj aplikace pro tisk z PPC pres IrDA (Symbol MC50, Windows Mobile 2003, eMbedded Visual C++). Kdesi jsem vystrachal program HP Mobile Printing (HP jiz zastavil jeho vyvoj a oficialne ho jiz na svych strankach nenabizi). Pomoci nej tisk funguje. K tomuto programu bylo take drive k dispozici SDK (HP Mobile Printing SDK for Pocket PC). Nemela by jej nektera zde se pohybujici dobra duse? Ackoliv jsem prolezl jiz desitky, mozna stovky stranek, nikde neni k nalezeni.

    Nepohrdnu samozrejme ani radou jak jinak tisknout z vlastni aplikace pres IrDA.

    Diky moc.

    EDITED: Tak uz se zadarilo. Uz pekne tisknu ze sve aplikace v PPC na BJC-85 pres IrDA...
    Pokud by mel nekdo stejny problem, rad poradim jak na to...
    Odpovídat lze po přihlášení

  12. #27
    Nováček
    Registrace
    Nov 2005
    Příspěvků
    20

    To p4v3l

    No to bych si rad probral, muzes me plz kontaktovat pres PrivMessage nebo na mejl kohout41@seznam.cz ???

    Diky kohout41
    Odpovídat lze po přihlášení



Strana 2 z 2 PrvníPrvní 12

Podobná témata

  1. Strategie pres IRda
    Od kony_ce4you v sekci Hry pro Pocket PC
    Reakcí: 12
    Poslední příspěvek: 10-09-2007, 18:59
  2. tisk pres IR
    Od Barbados v sekci Acer
    Reakcí: 3
    Poslední příspěvek: 01-11-2005, 14:20
  3. MDA a tisk pres IRDA nebo jinak ...
    Od sevens v sekci Zbývající PPC
    Reakcí: 8
    Poslední příspěvek: 02-10-2005, 21:43