Problema ao usar DLL
Oi Galera Blz!
Bom indo diréto ao assunto Estou desenvolvendo um sistema, e algumas functions estou colocando em dll´s para ficar mais facil de aproveitar o codigo então coloquei a seguinte function em uma dll
Éssa é uma função para Filtrar Caracter
Bom eu acho que o erro deve ser algo com o [b:b16daf3381]type[/b:b16daf3381] que eu tive que declarar tanto na dll como no sistema
Eu chamo a dll no systema da seguinte maneira
O erro que está dando é o seguinte
[b:b16daf3381]Access Violation at address 003A3E16 in module ´FiltCaracter.dll´. write of address 005CAC0E.[/b:b16daf3381]
Será que alguem tem como me dar uma Luz? :roll:
Valeu :wink:
Bom indo diréto ao assunto Estou desenvolvendo um sistema, e algumas functions estou colocando em dll´s para ficar mais facil de aproveitar o codigo então coloquei a seguinte function em uma dll
library FiltCaracter;
uses
SysUtils, Classes;
Type
TCharSet = set of char;
{$R *.res}
function FiltrarCaract(Source :String; Filter :TCharSet) :String; stdcall;
var
Idx :Integer;
begin
for Idx := Length(Source) downto 1 do
if (Source[Idx] in Filter) then
Delete(Source, Idx, 1);
Result := Source;
end;
exports FiltrarCaract;
end.Éssa é uma função para Filtrar Caracter
Bom eu acho que o erro deve ser algo com o [b:b16daf3381]type[/b:b16daf3381] que eu tive que declarar tanto na dll como no sistema
Eu chamo a dll no systema da seguinte maneira
{$R *.dfm}
function FiltrarCaract(Source :String; Filter :TCharSet) :String; External ´DLL\FiltCaracter.dll´;O erro que está dando é o seguinte
[b:b16daf3381]Access Violation at address 003A3E16 in module ´FiltCaracter.dll´. write of address 005CAC0E.[/b:b16daf3381]
Será que alguem tem como me dar uma Luz? :roll:
Valeu :wink:
Alecsandro Moura
Curtidas 0
Respostas
Massuda
24/01/2007
Como sua DLL usa o tipo de dado [b:1c6047cd59]string[/b:1c6047cd59], você deve incluir no uses do seu programa e da DLL a unit ShareMem. No esqueleto da DLL que o Delphi gera tem uma comentário sobre isso. Dê uma olhada :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=82514]neste tópico[/url] para mais detalhes.
GOSTEI 0
Alecsandro Moura
24/01/2007
Oi massuda Valeu pela força agora tá tudo certo, mas eu gostaria que vc esclarece-se uma duvida a respeito da DLL BorlandMM.DLL, lendo outros tópicos eu eu li comentarios que eu deveria levar essa dll junto ao meu projeto isso é verdade? e se for onde eu encontro éssa dll para levar junto ao meu projeto?
Valeu cara :wink:
Valeu cara :wink:
GOSTEI 0
Massuda
24/01/2007
[quote:d6fd6d4476=´Alecsandro Moura´]...lendo outros tópicos eu eu li comentarios que eu deveria levar essa dll junto ao meu projeto isso é verdade? e se for onde eu encontro éssa dll para levar junto ao meu projeto?[/quote:d6fd6d4476]Você vai precisar instalar essa DLL junto com o seu executável. Essa DLL geralmente está na subpasta bin da pasta onde o Delphi foi instalado.
GOSTEI 0
Nightshade
24/01/2007
se retornar PChar ao inves de string nao resolve teu problema??
GOSTEI 0
Alecsandro Moura
24/01/2007
Bom usei a dll BorlandMM.DLL e resolveu meu problema agora surgiu mais uma duvida como eu faria para instalar essa DLL junto com o meu projeto pois onde eu instalo o meu sistema da por causa dessa DLL que não está Instalada.
Como eu faço para instalar essa DLL?
Valeu :wink:
Como eu faço para instalar essa DLL?
Valeu :wink:
GOSTEI 0
Massuda
24/01/2007
[quote:f0f44f1084=´Alecsandro Moura´]Como eu faço para instalar essa DLL?[/quote:f0f44f1084]Basta copiar o arquivo .DLL para a mesma pasta do .EXE do seu programa.
GOSTEI 0
Alecsandro Moura
24/01/2007
Valeu Cara eu não estava conseguindo pois estava colocando a dll na pasta onde estava minhas outras dll´s :lol: . mas valeu mesmo BRIGADÂO :D
GOSTEI 0