Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-01-2009
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Una DLL Delphi para usar desde Visual Fox Pro

Tengo que unificar una serie de calculos en varias aplicaciones hechas n Delphi y VFP, la manera mas practica que se me ocurrio fue crear una dll y llamarla desde las distintas aplicaciones.

Tengo Esta DLL:

Código Delphi [-]
library ToolsProfit;

uses
  SysUtils,
  Classes,
  Forms,
  UtilidadGeneral in '..\..\Unidades\UtilidadGeneral.pas';

{$R *.res}

Procedure Informa(x : PChar); StdCall; Export;
begin
MessageBoxStr(x,'Tipo');
End;

Function StrMontoGringo(c:Currency):Pchar;
Var
m : String;
begin
m := Trim(fs(c,15,4));
m := StrReplace(m,'.',#0);
Result := Pchar(Trim(StrReplace(m,',','.')));
end;

Procedure DecodeAux02(Aux02:Pchar; Var Piezas,Largo,Altoouble; Var Ubicacion:Pchar);
Var
s : ShortString;
Aux : String;
begin
//MessageBoxStr(Aux02),'');
Aux  := StrReplace(aux02,'.',',');
Piezas := 0;
Largo := 0;
Alto := 0;
Ubicacion := '';
s := ExtraerSTRDelimitada(Aux,';');
If s <> '' Then
   Piezas := StrToCurr(s);
s := ExtraerSTRDelimitada(Aux,';');
If s <> '' Then
   Largo := StrToCurr(s);
s := ExtraerSTRDelimitada(Aux,';');
If s <> '' Then
   Alto := StrToCurr(s);
Ubicacion := AnsiStrUpper(Pchar(Aux));
end;

Function  EncodeAux02(Piezas,Largo,Altoouble; Ubicacion:Pchar):Pchar;
Begin
Result := PChar(Trim(StrMontoGringo(Piezas)+';'+
               StrMontoGringo(Largo)+';'+
               StrMontoGringo(Alto)+';'+
               AnsiStrUpper(Ubicacion)));
End;

Function StockEnFactores(Piezas,Largo,Altoouble)ouble;
Const
Factor = 10000;
begin
Result := Trunc(Piezas*Largo*Alto*Factor)/Factor; 
End;

Function StockEnAux02(Aux02:PChar)ouble;
Var
Piezas,Largo,Altoouble;
Ubicacion:PChar;
begin
DecodeAux02(Aux02,Piezas,Largo,Alto,Ubicacion);
Result := StockEnFactores(Piezas,Largo,Alto);
End;

Exports
  DecodeAux02,
  EncodeAux02,
  StockEnFactores,
  StockEnAux02,
  Informa;

begin
end.

y en VFP la declaro:

Código:
DECLARE SINGLE DecodeAux02 IN 'P:\Profit_a\reporadi\ToolsProfit';
String, Double, Double, Double, String

DECLARE Informa IN 'P:\Profit_a\reporadi\ToolsProfit';
String
El problema es con los datos tipo STRING vs PCHAR Al llamar las rutinas desde VFP (estoy probando con Procedure Informa(x : PChar); StdCall; Export que debería mostrar un mensaje con el texto del parametro me genera un error:

Data type mistmach - Es un problema de tipos

si cambio la variable por un texto constante ('xxxxx') si me muestra el mensaje.

1.- Que tipo de datos puedo usar para recibir un String desde VFP como parametro?

probe: ShortString,String (con shareMem) y pChar y todosdan mas o menos lo mismo
__________________
Sitrico

Última edición por sitrico fecha: 30-01-2009 a las 00:09:26.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
delphi 2009 para visual studio 2008 avmm2004 Noticias 22 08-10-2008 08:59:39
Como usar una dll creada en Visual c++ acertij022 Varios 2 19-10-2007 14:48:41
Como usar LoadParamsFromInifile Para conect a un Db Mysql Desde Otra máquina OscarBravo MySQL 0 09-02-2007 19:37:54
Usar una aplicación externa desde Delphi erika.martinez Varios 9 14-04-2005 19:10:22
acceder a una DB sin usar un componete visual orfeo Conexión con bases de datos 1 02-03-2004 07:06:44


La franja horaria es GMT +2. Ahora son las 22:01:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi