DLL de terceros y definición de funciones.

DLL de terceros y definición de funciones.

Postby FiveWiDi » Tue Dec 09, 2008 7:29 pm

Hola a todos,

A ver si me pueden ayudar un poco.

Estoy intentando definir como usaré una utilidad en una aplicación, y ésta viene en una DLL.

Según la documentación la definición de una función concreta seria:
********************************
HWND TerCreateWindowAlt(x, y, width, height, IsContained, hParentWnd, styles)

int x; // x position of the window in pixel units
int y; // y position of the window in the pixel units
int width; // width of the window in the pixel units
int height; // height of the window in the pixel units
BOOL IsContained; // TRUE if this window is to be contained inside another window
HWND hParentWnd; // handle of the parent window.
DWORD styles; // TER window styles. Please refer to the TER_xxx constants defined in the 'Getting Started' chapter. Set to 0 to use the default styles.

Description: This is a quick method of creating a TER window. For a more elaborate method of creating a TER window, please refer to the CreateTerWindow function.

Return Value: This function returns the window handle of the new window. It returns NULL if the window creation fails.
********************************

y yo la intento 'definir' así:

DLL32 FUNCTION TerCreateWindowAlt( x AS LONG, ;
y AS LONG, ;
width AS LONG, ;
height AS LONG, ;
IsContained AS _INT, ;
hParentWnd AS LONG, ;
styles AS LONG ) ;
AS LONG PASCAL FROM "TerCreateWindowAlt" LIB "ter16.dll"


¿Sería correcto?
¿Cuando ejecuto la aplicación debo realizar en su inicio Loadlibrary()?

Saludos y gracias
Carlos G.
FiveWiDi
 
Posts: 1088
Joined: Mon Oct 10, 2005 2:38 pm

Postby Antonio Linares » Tue Dec 09, 2008 9:28 pm

Carlos,

> IsContained AS _INT, ;

Preferible definelo como LONG tambien

> LIB "ter16.dll"

El que se llame 16 es solo casualidad, o sera una DLL de 16 bits ? Una DLL de 16 bits no la puedes usar desde una aplicacion en 32 bits.

> ¿Sería correcto?

Si :-)

> ¿Cuando ejecuto la aplicación debo realizar en su inicio Loadlibrary()?

No, no es necesario. DLL FUNCTION ... lo hace automaticamente. Solo hay que llamar a LoadLibrary() previamente cuando necesitemos mantener cargada (abierta) la DLL.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41478
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby FiveWiDi » Tue Dec 09, 2008 11:58 pm

Antonio Linares wrote:Carlos,

> IsContained AS _INT, ;

Preferible definelo como LONG tambien

> LIB "ter16.dll"

El que se llame 16 es solo casualidad, o sera una DLL de 16 bits ? Una DLL de 16 bits no la puedes usar desde una aplicacion en 32 bits.

> ¿Sería correcto?

Si :-)

> ¿Cuando ejecuto la aplicación debo realizar en su inicio Loadlibrary()?

No, no es necesario. DLL FUNCTION ... lo hace automaticamente. Solo hay que llamar a LoadLibrary() previamente cuando necesitemos mantener cargada (abierta) la DLL.


Gracias Antonio,

Ter16.dll ==>> el 16 es la versión; coindicencias.

Ha funcionado; estoy maravillado. No habia experimentado antes en esto (DLL de terceros me refiero).

Saludos
Carlos G.
FiveWiDi
 
Posts: 1088
Joined: Mon Oct 10, 2005 2:38 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: cmsoft and 41 guests