Error en el API

06/06/2006 - 20:10 por Jose Valverde | Informe spam
Buenas amigos de portal fox
Tengo un pequeño problema:
He creado una dll en Visual C++, esta tiene un metodo que devuelve 4
valores por referencia
esta se encuentra en system32

declaro el api

Local Clave1 As String
Local Clave2 As String
Local Clave3 As String
Local Clave4 As String

Declare getidsys In solsa.dll as FGetIdSys;
String @Pv_ID1,;
String @Pv_ID2,;
String @Pv_ID3,;
String @Pv_ID4;

la llamo

FGetIdSys(@Clave1,@Clave2,@Clave3,@Clave4)

y me sale un error de inicializacion de COM library

Atte
Jose Valverde


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
 

Leer las respuestas

#1 Carlos Alloatti
07/06/2006 - 03:59 | Informe spam
En las funciones API de Windows que aceptan cadenas por referencia, tienes
que inicializar primero esas cadenas con algun valor, VFP no es "strong
typed" asi que hacer local Clave1 As String no inicializa la variable
Clave1. Si quieres probarlo haz lo siguiente:

Local Clave1 As String
Local Clave2 As String
Local Clave3 As String
Local Clave4 As String

?Clave1 && Devuelve .F.

Añade entonces lo siguiente:

Clave1 = Space(254)

ó
Clave1 = Replicate(Chr(0), 254)

Tu dll como sabe el tamaño de cada cadena para no escribir más allá del
tamaño asignado a la misma?
Carlos Alloatti



"Jose Valverde" escribió en el mensaje
news:
Buenas amigos de portal fox
Tengo un pequeño problema:
He creado una dll en Visual C++, esta tiene un metodo que devuelve 4
valores por referencia
esta se encuentra en system32

declaro el api

Local Clave1 As String
Local Clave2 As String
Local Clave3 As String
Local Clave4 As String

Declare getidsys In solsa.dll as FGetIdSys;
String @Pv_ID1,;
String @Pv_ID2,;
String @Pv_ID3,;
String @Pv_ID4;

la llamo

FGetIdSys(@Clave1,@Clave2,@Clave3,@Clave4)

y me sale un error de inicializacion de COM library

Atte
Jose Valverde


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway

Preguntas similares