Power Builder - dll de visualbasic en powerbuilder

 
Vista:

dll de visualbasic en powerbuilder

Publicado por Marlen (23 intervenciones) el 21/07/2005 18:29:51
Hola,

estoy trabajando con PB 5.0, y necestio una función que me convierta una cadena en UNicode, pero PB5 no tiene la función toUnicode(), por eso cree una dll en visual basic y la estoy tratando de utilizar así:

Function String convertirUnicode(String lsFileName ) Library "prueba.dll" ALIAS FOR "prueba"

y la llamo de esta forma:

String lsfile
lsfile = "\My Documents\ssac.cdb"

lsfile= convertirUnicode(lsfile)
Messagebox("lsfile",lsfile)

Pero me retorna que error llamando a la función, cuando ejecuto la aplicación.

No se si es que no se hace el llamado como se hace con los apis,

Espero me puedan hacer algún comentario sobre el tema.

gracias
Saludos
Marlen.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:dll de visualbasic en powerbuilder

Publicado por Jorge (900 intervenciones) el 21/07/2005 21:25:46
Hola Marlen Tanto Tiempo!!

Estimo que es asi.
Salvo correciones o aclaraciones del foro .

Registra la dll con RegSvr32 o desde PB
y debes crear un Ole

OleObject oUnicode
Integer li_rtn

// Crear Objeto
oUnicode = create OLEObject

//Conectar
li_rtn = oUnicode.ConnectToNewObject("PrgId") (*1)

IF li_rtn <> 0 THEN
MessageBox('Error','No puede conectarse')
DESTROY oUnicode
end if

// Aqui tu codigo (
// oUnicode.funcion

DESTROY oUnicode

(1*) en tu caso que es VB deberia ser el nombre "Proyecto.clase_operaciones"
es el que en el browser del OLE te muestra en el PRGID

Ojala Te Ayude

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:dll de visualbasic en powerbuilder

Publicado por Antonio (1271 intervenciones) el 21/07/2005 21:57:23
Hola Marlen:

esto encontre en PB, no se sirva en la version 5.0

This example reads a blob containing an ANSI character string from a file called ansi.txt and converts it into a string. The string will be in either the Unicode or ANSI file format depending on the version of PowerBuilder you are running.

integer li_filenum
blob lb_text
string ls_native, ls_dbg
li_filenum = FileOpen("ansi.txt", StreamMode!)
FileRead(li_filenum, lb_text)
ls_dbg = string(lb_text)
ls_native = FromAnsi(lb_text)
FileClose(li_filenum)

Suerte amiga...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dll de visualbasic en powerbuilder

Publicado por Marlen (23 intervenciones) el 21/07/2005 23:15:21
Hola,

Gracia a los dos por las repuestas, tengo pb 5 y no existe la función to Ansi; Jorge hice lo que me indicaste registre la librería desde DOS con
>regsvr32.exe unicodevb.dll y pués dijo que se habia registrado satisfactoriamente, pero mire dentro de Browser - Ole - Programable Objects y no aparece, trate de registrarlo desde powerbuilder pero tampoco aparece.

Siembargo hice esto ,pero me dice que no se puede conectarse :(
OleObject oUnicode
Integer li_rtn
String lsFIle

// Crear Objeto
oUnicode = create OLEObject

//Conectar
li_rtn = oUnicode.ConnectToNewObject("unicodeVB.dll")

IF li_rtn <> 0 THEN
MessageBox('Error','No puede conectarse')
DESTROY oUnicode
return
end if

// Aqui tu codigo (*2)
// oUnicode.funcion
lsFIle = "\My Documents\ssac.cdb"
oUnicode.ConvertirUnicode(lsFIle)

DESTROY oUnicode

Lo triste es que la dll de visualbasic solo es esto:

Public Function ConvertirUnicode(FileName As String) As String

Dim ArchiBorra As String

ArchiBorra = StrConv(FileName, vbUnicode)
ConvertirUnicode = ArchiBorra

End Function

No se si es que estoy haciendo algo mal.

saludos
Marlen

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dll de visualbasic en powerbuilder

Publicado por Jorge (900 intervenciones) el 21/07/2005 23:58:02
Marlen

Creo que el error debe ser como llamas a tu coneccion
donde pones UnicodeVb.dll
Alli no es el nombre de la libreria es el nombre del id del programa
que no se como lo haces en VB

Fijate en el Browser en cualquier componente , en Class Information
una linea es ProgId= xxxxxxxxx
Ese es el nombre que debe llevar en el Conect.


Aver como te va Suerte !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

funcionó

Publicado por Marlen (23 intervenciones) el 25/07/2005 15:47:43
Hola Jorge,

Muchas gracias por tu ayuda, pude registrar la dll desde DOS y quedó registrado en pb como: Informacion.Convert

li_rtn = oUnicode.ConnectToNewObject("Informacion.Convert")

Saludos,
Marlen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:funcionó

Publicado por Jorge (900 intervenciones) el 25/07/2005 15:50:36
Muy bueno !! Marlen.
Me alegra

:) Pone a la venta la dll. .....

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:funcionó

Publicado por Marlen (23 intervenciones) el 26/07/2005 00:38:11
No, es muy sencilla, mejor si alguien la necesita con mucho gusto le doy el código.

Saludos,
Marlen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar