Foro Oficial de C#

Nah, que baina con esto.
No se como darme cuenta si las dll son administradas o no :S
Hay otras dll que necesito importar tambien que son los drivers de un dispositivo que se conectara a la aplicacion, y ni siquiera conozco los metodos de esa dll que debo aniadirle al proyecto... :muerto:
si no se dejan agregar como referencias normales: No son administradas...

y al no ser asi, entonces por COM podrias agregarlas ya que co tamb ien es autodescrioptivo, pero sino sirve por COM eentonces con dllImport y necsitarias pegarle una ojeada a los .h de esas librerias para saber que tienen...

o aprender algo de assembly y descomplar los opcodes para revisar los simbolos que hacen referencia etc... una tarea bastanbte desagradable..
 
A ver te cuento... necesito hacer esto:

The following files must be packaged with all Fingerprint SDK based applications:

GrFinger.dll
pthreadVC2.dll
The following files must be packaged with Fingerprint SDK ActiveX based applications:

GrFingerX.dll
Furthermore, GrFingerX.dll must be registered on system during application installation, using the regsvr32 tool. For further info about this tool, check the Microsoft's regsvr32 page.

The following files must be packaged with Fingerprint SDK Java for Windows based applications:

The following files must be packaged with all Fingerprint SDK based applications supporting the Fingerprint Readers compatible with Griaule FingerCap USB Driver:

CapPluginFingercap.dll
Todas las dll las tengo, ahora:

1. GrFinger.dll pthreadVC2.dll: Estas dos no se dejan importar por addreference, de la conozco las funciones que tiene, pero de la segunda ni idea y la documentacion dice: "must be packaged with all Fingerprint SDK based applications" Entonces no se a que se refieran con empaquetar... porque si no conozco nada de la pthreadvc2.dll y no se deja importar por addreference, que funciones voy a temrinar importando??

2. GrFingerX.dll: Es una dll activex, esta si se deja importar con add reference.

3. CapPluginFingercap.dll: Estos son los drivers del dispositivo, tampoco se la estructura por dentro pero necesito empaquetar la aplicacion con ellos.

Asi por encimita, alcanzas a visualizar algun modo de que yo haga lo que me esta indicando esa documentacion???

GrFingerX.dll must be registered on system during application installation
Esta parte tampoco la entiendo :S

Toy llevao xD
 
A ver te cuento... necesito hacer esto:


Todas las dll las tengo, ahora:

1. GrFinger.dll pthreadVC2.dll: Estas dos no se dejan importar por addreference, de la conozco las funciones que tiene, pero de la segunda ni idea y la documentacion dice: "must be packaged with all Fingerprint SDK based applications" Entonces no se a que se refieran con empaquetar... porque si no conozco nada de la pthreadvc2.dll y no se deja importar por addreference, que funciones voy a temrinar importando??

2. GrFingerX.dll: Es una dll activex, esta si se deja importar con add reference.

3. CapPluginFingercap.dll: Estos son los drivers del dispositivo, tampoco se la estructura por dentro pero necesito empaquetar la aplicacion con ellos.

Asi por encimita, alcanzas a visualizar algun modo de que yo haga lo que me esta indicando esa documentacion???


Esta parte tampoco la entiendo :S

Toy llevao xD

Has referencia a GrFingerX.dll:y has uso de las funciones que tenga y que necesites.

Las otras dos deben estar en la carpeta del ejecutable de tu aplicación.
 
Y la parte de registrarla que? eso lo hace la aplicacion al ejecutarse o que?
GrFingerX.dll
Furthermore, GrFingerX.dll must be registered on system during application installation, using the regsvr32 tool. For further info about this tool, check the Microsoft's regsvr32 page.

desde el command prompt:

regsvr32 GrFingerX.dll


si asi no funciona dice alli que revises la documentacion de microsoft reladcionada con el uso de ese comando.
 
Hola, pregunto:
Ese metodo de la dll user32 que hace especificamente??

[DllImport("user32.dll",EntryPoint="GetDC")]
public static extern IntPtr GetDC(IntPtr ptr);

Esta linea de codigo que hace:
IntPtr hdc = GetDC(System.IntPtr.Zero);

Y este metodo de la dll user32 que hace:

[DllImport("user32.dll",EntryPoint="ReleaseDC")]
public static extern IntPtr ReleaseDC(IntPtr hWnd,IntPtr hDc);

Gracias...
 
Hola, pregunto:
Ese metodo de la dll user32 que hace especificamente??

Esta linea de codigo que hace:

Y este metodo de la dll user32 que hace:

Gracias...

Bueno veo que te estas metiendo en temas un poco mas avanzados que tu nivel actual de developer, asi que tratare de no hacerte enredar mas aunque sera dificil...

user32 es una libreria de la APi de windows donde se encuentran gran cantidad de funcionalidades relacionadas con el manejo de interfaces gráficas, de allí las dos que mencionan hacen:


  • GetDC = Get Device Context = adquirir contexto del dispositivo... cual dispositivo? se le llama asi a al area que se dibuja en toda la pantalla o al area que hace parte de la superficie de dibujo de una ventana (teniendo como ventana cualquier control ) , esto devuelve un manejador que es con el cual se pueden hacer llamadas a varias funciones de dibujo por GDI( GRaphics Device Interface), GDI es el sistema de dibujo basico de ventanas que utiliza windows, luego fue reemplazado por GDI+ desde WXP, y ahora desde wvista interactua con otros componentes graficos mas poderosos.
  • ReleaseDC= libera un manejador provisto por GetDC.
IntPtr hdc = GetDC(System.IntPtr.Zero);

Eso esta trayendo el manejador de contexto de la ventana 0... que sino estoy mal es la pantalla completa ( ojo que no hablo de modo de pantalla completa, solo que es la ventana general que engloba el escritorio el taskbar etc. )
 
Juank muchisimas gracias, me has enseniado y aclarado muchisimas cosas. Que bacano...

Gracias de verda...

En cuanto al manejo de dll, y esos temas avanzados que decis... por donde consideras que debo empezar para irme metiendo en eso con mas propiedad?

Juank_solocodigo dijo:
Eso esta trayendo el manejador de contexto de la ventana 0... que sino estoy mal es la pantalla completa ( ojo que no hablo de modo de pantalla completa, solo que es la ventana general que engloba el escritorio el taskbar etc. )
Hay forma de aclarar un poco mas esto :blush:
 
Juank muchisimas gracias, me has enseniado y aclarado muchisimas cosas. Que bacano...

Gracias de verda...

En cuanto al manejo de dll, y esos temas avanzados que decis... por donde consideras que debo empezar para irme metiendo en eso con mas propiedad?
sin el animo de que aprezca propaganda politica pagada :p

pero leete los articulos de mi blog, suelo ahcer ejemplos sencillos con algunas de esas cosas sobretodo utilizando DllImport con user32.

Una vez le cojas el tiro a DllImport se te hara mas digerible la informacion que te pase de msdn.

como todo, pues con la practica se aprende, asi que puedes luego ir haciendo mas cosas con Dllimport que te enseñen a conocer mejor la APi o incluso hacer o buscar hechas cosas con C++ y luego tratar de hacerlas con C# usando DllImport
 
Listo, pero falto esto... xD Que berraco tan canson yo, pero necesito y quiero aprender =)

Juank_solocodigo dijo:
Eso esta trayendo el manejador de contexto de la ventana 0... que sino estoy mal es la pantalla completa ( ojo que no hablo de modo de pantalla completa, solo que es la ventana general que engloba el escritorio el taskbar etc. )
Hay forma de aclarar un poco mas esto :blush:
 
---
Eso esta trayendo el manejador de contexto de la ventana 0... que sino estoy mal es la pantalla completa ( ojo que no hablo de modo de pantalla completa, solo que es la ventana general que engloba el escritorio el taskbar etc. )
---
En cuanto al manejo de dll, y esos temas avanzados que decis... por donde consideras que debo empezar para irme metiendo en eso con mas propiedad?

Hay forma de aclarar un poco mas esto :blush:


Digamos que cada ventana tiene un ID, en windows todo lo que ves en pantalla se puede llamar una ventana, para windows inlcuso un Boton es una ventana especializada en otras cosas, y un checkbox es otra ventana, lo mismo un label, un Grid es una ventana hecha de muchas otras ventanas etc...

el escritorio visible es una ventana, el taskbar es otra ventana compuesta contenida dentro del desktop... al igual que cualquier otra ventana... desktop es la ventana padre, la ventana 0.

GetDC trae un manejador de contexto GDI (bueno asi lo entiendo yo) y esto es como lo siguiente:

la ventana es un lienzo
para dibujar en lienzo no vasta con solo tenerlo, sino que hay que que acceder a ese lienzo en modo dibujo...

es como tener un lienzo enmarcado, para poder dibujar en ese lienazo debes hacer algunas cosas (sacarlo del marco)...
de igual forma para poder dibujar en la ventana hay que hacer algunas cosas para accederla para dibujar..

asi que el manejador que se obtiene con GetDC es realmente un numero de identificacion que apunta a un objeto creado por windows y que permite acceder a la ventana en modo pintura...

con es manejador tu puedes luego dibujar un rectangulo pasandole como parametro a la funcion hipotetica "DibujarRectangulo" el numero de identificacion del contexto de dibujo para que el sepa que lo va a pintar en ese contexto y no en otro... y desde luego cada contexto esta asociado a la ventana que donde se desea pintar.
 
Por cierto, En System.Drawing.Graphics tienes cosas comoGetHDc y GReleaseHdc para interoperar con identificadores de contexto GDI.
 
Y el parametro System.IntPtr.Zero a que termina haciendo referencia, porque me puse a medio leer y vi que IntPtr es un manejador o puntero, pero no cojo muy bien el atributo "Zero" que este tiene.
 
Y el parametro System.IntPtr.Zero a que termina haciendo referencia, porque me puse a medio leer y vi que IntPtr es un manejador o puntero, pero no cojo muy bien el atributo "Zero" que este tiene.

IntPrt.Zero = a un apuntador a la direccion 0, o sea el valor 0.
 
Hola, pregunto:
Ese metodo de la dll user32 que hace especificamente??



Esta linea de codigo que hace:


Y este metodo de la dll user32 que hace:



Gracias...

Oye V3NOM, ¿tu ya te leiste este tutorial? http://www.csharp-station.com/Tutorials/Lesson01.aspx en la parte de "Attributes", me parece que despeja un poco mas lo que preguntas, o pues por lo menos leyendo la discusion entre JuanK_solocodigo y tu ya la voy teniendo clara.


Bueno si la respuesta es que no es una dll administrada, y ya probaste haciendo referencia por COM y no dejo...

Si tienes que hacer eso por cada metodo de la dll que vayas a utilizar.

Lo de static es por que no puedes utilizar el Dll]Import sino para exponer métodos de manera estática, ya que no se sabe si tu dll define objetos o no, entonces previendo que no entonces los métodos se exponen como se haría normalmente en C es decir estáticos, pues no hay clases y sino hay clases no hay instancias de objetos... asi que donde poner entonces los metodos?

entonces toca como estáticos dentro de la clase que los referencia.

con ponerlo asi como te dije ya lo puedes usar , no hay que sobre escribir nada.

JuanK_solocodigo, como asi?? C se maneja distinto que C#??? quiero decir, la sintaxis es distinta?? en C no hay Clases ni metodos ni propiedades entonces??
 
JuanK_solocodigo, como asi?? C se maneja distinto que C#??? quiero decir, la sintaxis es distinta?? en C no hay Clases ni metodos ni propiedades entonces??

en C no hay clases ni metodos, los métodos se llamán funciones, como no hay clases ni objetos , técnicamente hablando todo es estático.

C++ es híbrido, puedes usarlo de manera estructural como a C, o peudes hacerlo orientado a objetos o puedes revolver ambos, como puedes revolver ambos, hay cosas que son estructuradas y por ende son estáticas.
 
Señores Buenas necesito me ayuden ya ke soy totalmente nuevo en esto del C# tengo un problema ke se me planteo en una de las materias ke estoy viendo y no tengo ni idea de por donde empezar. El problema consiste es llenar un tablero de ajedrez de (8x8) solo con el caballo el cual solo mueve en L. No se puede repetir jugadas y en total hay ke llenar las 64 casillas dandole prioridad a las eskinas de dicho tablero. Con el papel y el lápiz llego hasta la 63 pero eso no es lo preocupante, lo preocupante es ke no tengo ni idea de como plasmar esto en c# por ej. crear matrices, clases ni nada; mejor dicho cero.!! alguien me puede indicar por donde puedo empezar que textos o ke guias me pueden ir enseñando a resolver esta clase de problemas por parte de un completo ignorante en el lenguaje C#?? XD... Espero me ayuden ;) muchas gracias!!
 
Señores Buenas necesito me ayuden ya ke soy totalmente nuevo en esto del C# tengo un problema ke se me planteo en una de las materias ke estoy viendo y no tengo ni idea de por donde empezar. El problema consiste es llenar un tablero de ajedrez de (8x8) solo con el caballo el cual solo mueve en L. No se puede repetir jugadas y en total hay ke llenar las 64 casillas dandole prioridad a las eskinas de dicho tablero. Con el papel y el lápiz llego hasta la 63 pero eso no es lo preocupante, lo preocupante es ke no tengo ni idea de como plasmar esto en c# por ej. crear matrices, clases ni nada; mejor dicho cero.!! alguien me puede indicar por donde puedo empezar que textos o ke guias me pueden ir enseñando a resolver esta clase de problemas por parte de un completo ignorante en el lenguaje C#?? XD... Espero me ayuden ;) muchas gracias!!

si vienes de java, o C++, lo vas a entender muy facilmente, si no, tambien, es un lenguaje muy facil de usar y extremadamente poderoso, orientado a objetos, a continuacion los links con los que yo aprendí desde 0:

http://www.csharp-station.com/Tutorials/Lesson01.aspx
http://www.elguille.info/NET/cursoCSharpErik/
http://www.homeandlearn.co.uk/csharp/csharp.html

Leelos en ese orden y copia los ejemplos de la primera pagina, pero copialos a mano, es decir, digita cosa por cosa en el Visual Studio para que vallas entendiendo el funcionamiento.

Aqui puedes descargar el Visual Studio GRATIS (Visual C# Express 2008) de la pagina de Microsoft http://www.microsoft.com/express/download/
 
si vienes de java, o C++, lo vas a entender muy facilmente, si no, tambien, es un lenguaje muy facil de usar y extremadamente poderoso, orientado a objetos, a continuacion los links con los que yo aprendí desde 0:

http://www.csharp-station.com/Tutorials/Lesson01.aspx
http://www.elguille.info/NET/cursoCSharpErik/
http://www.homeandlearn.co.uk/csharp/csharp.html

Leelos en ese orden y copia los ejemplos de la primera pagina, pero copialos a mano, es decir, digita cosa por cosa en el Visual Studio para que vallas entendiendo el funcionamiento.

Aqui puedes descargar el Visual Studio GRATIS (Visual C# Express 2008) de la pagina de Microsoft http://www.microsoft.com/express/download/
Muchas asias mano!! ya mismo me pongo en la tarea de tratar de traducirlo y a empezar a experimentar..!! ;) De casualidad no tendras algo en spanish? me ahorraría bastante tiempo!! XD..!! si no de todas maneras asias!! :p
 

Los últimos temas