Fórum ddl´s usar pchar, sortstring ou string #152773
08/04/2003
0
Não sou bom conhecedor de Dll´s, por isso recorro ao forum.
Tenho uma função para construção de clausula sql. Quando eu a uso em uma unit no projeto tudo ok. Eu quero passa-la para uma DLL. Como eu faço com os parametros ´String´. Abaixo o cabeçalho da função, se alguem puder me ajudar ou indicar-me algum material (Que seja bem exclarecedor), agradecerei muito.
function BuildSQL(campos, valores, opers : Array of String; QtdCampos : Integer; DS : TQuery): String;
Alexandre Paganato
Favor postar o título em minúsculas
Moderador
Tenho uma função para construção de clausula sql. Quando eu a uso em uma unit no projeto tudo ok. Eu quero passa-la para uma DLL. Como eu faço com os parametros ´String´. Abaixo o cabeçalho da função, se alguem puder me ajudar ou indicar-me algum material (Que seja bem exclarecedor), agradecerei muito.
function BuildSQL(campos, valores, opers : Array of String; QtdCampos : Integer; DS : TQuery): String;
Alexandre Paganato
Favor postar o título em minúsculas
Moderador
Paganato
Curtir tópico
+ 0
Responder
Posts
08/04/2003
E_gama
Quando se escreve uma DLL, eh de costume utilizar, ao inves de [b:e79201e51e]string[/b:e79201e51e], utilizar [b:e79201e51e]PChar[/b:e79201e51e]. Voce ateh pode utilizar o primeiro tipo, mas deve seguir as recomendacoes que vem escritas quando voce cria um novo projeto de DLL.
So para relembrar:
Mesmo assim, eh melhor utilizar PChar, e utilizar as funcoes de conversao [b:e79201e51e]string->PChar->string[/b:e79201e51e] do delphi:
exemplo de conversao:
So para relembrar:
library Project1;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library´s USES clause AND your project´s (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
SysUtils,
Classes;
{$R *.RES}
begin
end.
Mesmo assim, eh melhor utilizar PChar, e utilizar as funcoes de conversao [b:e79201e51e]string->PChar->string[/b:e79201e51e] do delphi:
exemplo de conversao:
function PassaPChar(Prm: PChar): PChar; var str: string; begin str := ´Parametro recebido: ´ + StrPas(Prm); Result := PChar(str); end; var Teste1, Teste2: string; Teste3: PChar; begin Teste1 := ´Teste de Parametros´; Teste3 := PassPChar(PChar(Teste1)); Teste2 := StrPas(Teste3); end;
Responder
Gostei + 0
08/04/2003
Paganato
Quanto a minha função para a criação de SQL, posso (ou existe uma forma) utilizar um ARRAY de PCHAR.
Como posso resolver este problema?
Como posso resolver este problema?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)