API Windows, comparacion con 6x


([N1] AROJAS) #1

Hola

 

Estoy probando la libreria dinamica y me encuentro que ciertos tipos de parametros que en la v6x, se encontraba, ahora no las encuentro en la V7, por ejemplo :

LPCTSTR, LPTSTR, UINt.

por lo que he visto en las open apps, las 2 primeras se utilizan const char*, pero no encuentro para UINT, que creo que se podria reemplazar por long, float, double.

Estoy tratando de hacer uso de la libreria winmm.dll, funcion mciSendString, cuyos parametros en v6.x son LPCTSTR, LPTSTR, UINt, int. 

Ademas la convencion de la funcion en 6x es _stdcall, en v7, deberia de ser C_X86_WIN32_STD,  pero no me funciona, sera que alguien con conocimiento de este tipo de temas podria brindarme alguna ayuda.

 

 

Desde ya muchas gracias

 

 


([N1] AROJAS) #2

Hola

 

Investigando LPCTSTR, es const char* por ser una constante, por otro lado LPTSTR es char, UINT su equivalente es unsigned int.

Pero aun no puedo hacer que funcione, por favor si la gente VELNEO puede ayudarme en esto, ya que no me funciona, estoy experimentando con las llamada a las Dll de Windows, lo unico que me queda es probar cada una de las convecniones de llamadas y ver si alguna realiza lo que necesito.

 

 

Gracias


([N1] AROJAS) #3

Hola

 

Disculpen que siga incistiendo, pero me gustaria saber si alguien ha implementado alguna libreria, pues de hecho ya se que en las Open apps, existen ejemplos, pero me refiero a Librerias del Api de Windows, que experiencias pueden decirme, ya que no encientro la manera de utilizarlo. Y ya me urge este tema

 

Desde ya muchas gracias


(ame) #4

Hola roma7612901.hotmail,

 

Yo también ando liado con las DLL's propias de Windows. En concreto he intentado usar las funciones que suministra tanto user32.dll como kernel32.dll, sin éxito alguno. A priori parece correcto que creo bien los objetos "fichero adjunto" y los objetos "librería externa dll", pero después de configurar sus funciones con sus parámetros todo bien, no consigo que desde un proceso por ejemplo, haga estas llamadas a las DLL's. Es como si no hiciera caso, no las reconoce.

A ver si alguien nos puede echar una manita, ¿no? Por cierto, siento no haberte podido contestar antes con respecto a los tipos de datos de los parámetros que has mencionado. Yo concretamente vengo de C++, y es cierto lo que dices, son definiciones de tipos que emulan a los tipos de bajo nivel de C, como son el puntero largo a cadena de texto constante, el puntero a carácter y el entero sin signo. Un pequeño detalle: no sé si será por error tipográfico, pero LPTSTR corresponde a puntero a carácter (char *) y no a carácter (char) como has puesto, no sé si cometiste un error al teclear, de todas formas te lo digo no vaya a ser que por eso no te funciona la aplicación.

 

Un saludo.

 

José Luis.

 


([N1] AROJAS) #5

Hola Jose Luis

 

Pues tienes razon corresponde a char *, pero no existe este caracter en esta version, conoces  alguna alternativa?.

 

Por lo que he visto en los Ejemplos de las Open Apps, para el puntero LPTSTR utilizan const char*, pero ni aun asi me funciona, muchas gracias por contestar.

 

Creo que estaria bien que  la gente de Velneo nos de una mano

 

Cordiales saludos

Velneo_icons.zip (145 KB)

Velneo_icons.zip (145 KB)

Velneo_icons.zip (145 KB)


(ame) #6

Hola compañero,

 

Pues sí, no estaría mal que nos echaran un cable, parece que está un poco oscuro el tema este de las DLL's.

Cierto que se puede usar indistintamente const char * o char *, siempre y cuando la función no modifique el valor del parámetro. La diferencia estriba en que el const hace que el puntero sea constante, o sea, no permite modificar su valor, así que mientras la función no lo haga, en dicho contexto, ambos tipos son equivalentes y por tanto intercambiables.

Si sigue sin funcionar, ya no sé que puede ser. Esperemos que nos arrojen alguna pista.

 

Saludos.

 

José Luis.


([N1] AROJAS) #7

Hola

 

Intentare documentar mejor lo que estoy haceindo a lo mejor asi es mas facil ver el problema, por que ya le di muchas vueltas, y cada vez se me confirma  de que la V7 tiene problemas con el tratamiento de las APIS de Windows.

 

Cordiales saludos

[attachment=7500,736] [attachment=7500,737] [attachment=7500,738] [attachment=7500,739] [attachment=7500,740]


([N2] bannu) #8

La conversión tiene que ser stdcall para la API de Windows, supongo que stdcall corresponde a C_X86_WIN32_STD.

 


([N1] AROJAS) #9

Hola sonovision.telecable

 

Gracias, ya lo he probado inclusive como mencionas, ademas el C_DEFAULT supuestamente detecta la convención de forma automatica, lo raro en la version de V7, aparece para elegir la convencion, tanto en la declaracion de la Dll, como en las funciones, cosa que en la v6.x, no lo hacia, asique inclusive probe convinando varias alternativas.

 

 

Cordiales Saludos