In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Cargar funcion de una DLL

Foro público de Xailer en español
User avatar
XeviCOMAS
Posts: 524
Joined: Sat Mar 12, 2011 8:16 pm

Cargar funcion de una DLL

Postby XeviCOMAS » Mon Jan 01, 2018 2:51 pm

Cómo puedo cargar una función de una DLL???

En Harbour disponemos de FRename(), FCopy(), pero no tenemos o no he sabido encontrar FMove().

Necesito de la función MoveFile(), que está incluida en la DLL kernel32

Como puedo hacer esto en Xailer???

DLL32 FUNCTION MoveFile( cOldName AS LPSTR, cNewName AS LPSTR ) ;
AS LONG PASCAL FROM "MoveFileA" LIB "kernel32.dll"


Gracias.
Un Saludo,
Xevi.
User avatar
Carlos Ortiz
Posts: 846
Joined: Wed Jul 01, 2009 5:44 pm
Location: Argentina - Córdoba
Contact:

Re: Cargar funcion de una DLL

Postby Carlos Ortiz » Mon Jan 01, 2018 6:53 pm

Si incluís en el proyecto las clipper tool tenes FileMove(), no uso harbour por lo tanto no se ni como se llama el .a de las CT

Feliz 2018 Xevi y resto del foro!!!
@dbfarma
www.dbfarma.com.ar
User avatar
jfgimenez
Site Admin
Posts: 5620
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Re: Cargar funcion de una DLL

Postby jfgimenez » Mon Jan 01, 2018 8:03 pm

Xevi,

mira la clase TFileOperationDlg
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
User avatar
XeviCOMAS
Posts: 524
Joined: Sat Mar 12, 2011 8:16 pm

Re: Cargar funcion de una DLL

Postby XeviCOMAS » Mon Jan 01, 2018 9:50 pm

José,

PERFECTO!!!

Gracias.
Un Saludo,
Xevi.
User avatar
XeviCOMAS
Posts: 524
Joined: Sat Mar 12, 2011 8:16 pm

Re: Cargar funcion de una DLL

Postby XeviCOMAS » Mon Jan 01, 2018 11:09 pm

José,

Si bien funciona correctamente, el Logdebug de Xailer me lanza un mensaje de error cuando :nAction := foMOVE

shell\osshell\lmui\ntshrui\dll\shrengine.cpp(1487)\ntshrui.dll!6B883D65: (caller: 6B87F284) ReturnHr(2) tid(2550) 80004005 Error no especificado

el código que utilizo...

WITH OBJECT TFileOperationDlg():New()
:aFrom := { AppData:cRuta+AppData:cCodiEmpresa + "\ALBAR" }
:aTo := { AppData:cRuta+::oEditCodi:cText + "\ALBAR" }
:nAction := foMOVE //foCOPY //foDELETE //foRENAME
:lNoConfirmMkDir := .T.
:lSilent := .T.
:Create()
:Run()
END


Con nAction := foCOPY no me lanza ningún mensaje el logdebug()

Gracias.

Un Saludo,
Xevi.
Un Saludo,
Xevi.
User avatar
jfgimenez
Site Admin
Posts: 5620
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Re: Cargar funcion de una DLL

Postby jfgimenez » Thu Jan 04, 2018 1:02 pm

XeviCOMAS wrote:Si bien funciona correctamente, el Logdebug de Xailer me lanza un mensaje de error cuando :nAction := foMOVE

shell\osshell\lmui\ntshrui\dll\shrengine.cpp(1487)\ntshrui.dll!6B883D65: (caller: 6B87F284) ReturnHr(2) tid(2550) 80004005 Error no especificado

Esto se ha hablado ya muchas veces. No es ningún error de Xailer, y probablemente tampoco sea un error como tal. El IDE de Xailer actúa como un debugger a todos los efectos, y recibe todos los mensajes que se envíen a través de OutputDebugString() desde cualquier parte dentro del mismo proceso. Y desde cualquier parte significa exactamente eso: un driver de impresora, los driver de la tarjeta de video, el propio kernel de windows, etc..

De hecho, el mensaje que recibes es algún aviso de depuración que se han dejado ahí los de MS. Es lo mismo que si tú te dejas algún LogDebug() en tu programa y alguien lo ejecuta con un debugger: verá todos los mensajes que envíes con LogDebug(). Si esos mensajes son de error o no, pues dependerá de lo que considere el que los ha puesto ahí. Lo más razonable sería pensar que si de verdad fuera un error, lo estaría mostrando de otra forma, no ahí, porque cuando el programa se ejecuta normalmente (sin debugger), nadie puede ver esos mensajes. Por lo tanto, yo no les haría ningún caso. Bueno, de hecho es que no les hago ningún caso, y mira que veo montones de ellos a diario ;-)
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
User avatar
XeviCOMAS
Posts: 524
Joined: Sat Mar 12, 2011 8:16 pm

Re: Cargar funcion de una DLL

Postby XeviCOMAS » Thu Jan 04, 2018 2:44 pm

José,

gracias por tu respuesta.

Si, se que se ha comentado en otras ocasiones, pero siempre me "choca" ver mensajitos en la ventanita del Debugger.

No por nada más, porque por lo del funcionar, funciona correctamente!!!
Un Saludo,
Xevi.

Return to “Spanish”