Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-03-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Problemas Compilar dll en Editor Delphi XE3

Buenas:
Soy novatillo, y he estado haciendo unas cosillas el delphi, sobre todo dlls para reutilizar en otros lenguajes, y siempre he usado el Borland Delphy 7.
Me he puesto a hacer unas cosillas, y me he puesto a utilizar el nuevo editor de Delphy el XE3, pero siempre que lanzo un pChar o un String, los caracteres que me muestra estan en chino.
¿Alguien sabe como tengo que configurarlo? No encuentro ninguna documentación al respecto.
¿alguien sabe por qué al generar la dll, me ocupa tanto? He hecho una prueba con una chorrada, y me ocupa casi 2 Megas, lo hago desde Delphy 7, y ademas de funcionar perfectamente, me ocupa 100 Kbs.
Os dejo el codigo pa que veas que chorrada es:
Código PHP:
library Prueba;

Important note about DLL memory managementShareMem must be the
  first unit in your library
's USES clause AND your project'(select
  Project
-View SourceUSES clause if your DLL exports any procedures or
  
functions that pass strings as parameters or function resultsThis
  applies to all strings passed to 
and from your DLL--even those that
  are nested in records 
and classesShareMem is the interface unit to
  the BORLNDMM
.DLL shared memory managerwhich must be deployed along
  with your DLL
To avoid using BORLNDMM.DLLpass string information
  using PChar 
or ShortString parameters. }

uses
  Winapi
.WindowsWinapi.MessagesSystem.SysUtilsSystem.VariantsSystem.ClassesVcl.Graphics,
  
Vcl.ControlsVcl.FormsVcl.Dialogs;


{
$R *.res}

function 
mensaje(sTitulo pCharsMensaje pChar): boolean;stdcall;
begin
  Application
.MessageBox(sMensajesTituloMB_ICONINFORMATION);
  
result:=TRUE;
end;

exports mensaje;
begin
end

Responder Con Cita
  #2  
Antiguo 14-03-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Se me olvidaba mostraros el mensaje de salida:
hxxp://imageshack.us/photo/my-images/844/14032013123958.jpg/
Responder Con Cita
  #3  
Antiguo 14-03-2013
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Como estas llamando a la función mensaje...?

Da algo mas de información...como dice alguien en el foro..."Mi bola de cristal esta dañada en estos momentos"...o algo parecido...

Saludos
Responder Con Cita
  #4  
Antiguo 14-03-2013
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Si estás trabajando con Delphi XE3 seguramente el problema estará en la codificación del string.
A partir de Delphi 2009 los string están codificados como Unicode.
Si el otro lenguaje con el que trabajas envía códigos ASCII, seguramente tengas que esperar parámetros del tipo pAnsiChar.
Código Delphi [-]
function mensaje(sTitulo : pAnsiChar; sMensaje : pAnsiChar): boolean; stdcall;
begin
  Application.MessageBox(sMensaje, sTitulo, MB_ICONINFORMATION);
  result:=TRUE;
end;

Te sugiero además, que el código Delphi que envíes a los foros los encierres entre etiquetas delphi
Código:
[ delphi ]
WriteLn('Hellp World!');
[ /delphi ]
Responder Con Cita
  #5  
Antiguo 14-03-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Gracias por Responder, pero me sigue sin funcionar como tu me dices, nada que me sigue saliendo chinos. Ademas si lo ponia como me decias tu, me daba error al compilar, me decia que la MessageBox no podia enviarle ese tipo de datos.
He hecho esto:
Código Delphi [-]
library Prueba;



uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;


{$R *.res}

function mensaje(sTitulo : pAnsiChar; sMensaje : pAnsiChar): boolean;stdcall;
begin
  Application.MessageBox(Pchar(sMensaje), PChar(sTitulo), MB_ICONINFORMATION);
  result:=TRUE;
end;

exports mensaje;
begin
end.

Yo me supongo, que mas que del codigo sea algo de configuración del IDE, porque si lo compilo con delphy 7 ningun problema
Responder Con Cita
  #6  
Antiguo 14-03-2013
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Tienes razón, lo que yo envié no compila. Era más que nada para mostrarte que hay dos codificaciones posibles para strings.
En realidad hay una infinidad de codificaciones, ASCCI, Unicode, UTF8/16/32 son las más utilizadas.

Dicho esto, deberías averiguar como envía los parámetros el lenguaje que utiliza tu dll.
Luego deberás recibir estos datos en variables que sean del tipo correcto. (esto es discutible)
Finalmente, quizás debas traducir la codificación de lo que recibes a la que utiliza Delphi XE3. En este caso Unicode.
Responder Con Cita
Respuesta



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
Problemas Despues De Compilar. FrianxD C++ Builder 10 10-10-2008 17:46:05
Problemas con el Property editor gallipi OOP 0 07-02-2008 17:22:35
problemas con el Delphi al compilar aplicacion !!! Goyo Varios 2 11-07-2007 17:25:05
Problemas al compilar en Ib Expert Anonimusx Firebird e Interbase 0 23-04-2007 15:36:24
problemas al compilar con delphi 6 tras cambiar a windowXP Giniromero Conexión con bases de datos 3 02-02-2005 18:10:33


La franja horaria es GMT +2. Ahora son las 21:13:50.


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