Fórum Problema ao usar DLL #336704

24/01/2007

0

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

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

Alecsandro Moura

Responder

Posts

24/01/2007

Massuda

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.


Responder

Gostei + 0

26/01/2007

Alecsandro Moura

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:


Responder

Gostei + 0

26/01/2007

Massuda

[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.


Responder

Gostei + 0

26/01/2007

Nightshade

se retornar PChar ao inves de string nao resolve teu problema??


Responder

Gostei + 0

29/01/2007

Alecsandro Moura

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:


Responder

Gostei + 0

29/01/2007

Massuda

[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.


Responder

Gostei + 0

29/01/2007

Alecsandro Moura

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar