Selecao DevMedia QUERO SER PRIME

Fórum Problema na dll - Invalid Pointer Operation #326926

07/08/2006

0

Olá Programadores delphi, estou com o seguinte problema,
comecei desenvolver um aplicativo, mais gostaria q as funçoes do mesmo ficassem dentro de uma dll.

Criei o soft e a dll, compilou tudo certinho, mais quando chama no soft a função que está na dll aparece o resultado da função e após o resultado aparece uma mensagem de erro:

´Invalid Pointer Operation´

Vou Colar abaixo o fonte da dll e da Unit Para Q Vcs Vejam e me digam c estou errando em alguma coisa.

Código da DLL:

library Funcoes;
uses
SysUtils,
Classes,
Registry;

{$R *.res}
Function Crypt(Texto : String) : String;
Var
Chave: Word;
I : Integer;
OutValue : String;
Begin
OutValue := ´´;
Chave := 12;
For I := 1 to Length(Texto) Do
OutValue := OutValue + char(Not(ord(Texto[I])-Chave));
Result := OutValue;
End;

Exports Crypt;
begin
end.

=====================

Código da Unit

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
Function Crypt(Texto : String) : String; StdCall; External ´Funcoes.dll´;

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := Crypt(Edit1.Text);
end;

end.

==================

Desde Já Agradeço.


Buffering

Buffering

Responder

Post mais votado

07/08/2006

Você precisa incluir a unit ShareMem no DPR do seu executável...
Desculpe, o correto seria...

Você precisa incluir a unit ShareMem no DPR do seu executável [b:9734d9451e]e do DPR da DLL[/b:9734d9451e].

Além disso, essa unit deve ser a [b:9734d9451e]primeira[/b:9734d9451e] unit na lista de uses do DPR.


Massuda

Massuda
Responder

Gostei + 1

Mais Posts

07/08/2006

Massuda

Você precisa incluir a unit ShareMem no DPR do seu executável.

Dê uma olhada no arquivo DPR da sua DLL e você verá um aviso sobre o uso de ShareMem e uso de parâmetros do tipo string nas functions/procedures da DLL.

Adicionalmente, além da sua DLL, você terá que incluir na instalação do seu programa a DLL BorlandMM.DLL.


Responder

Gostei + 0

07/08/2006

Buffering

Ei Massuda agora ele arrumou o invalid poiter operation ficou perfeito só q agora quando fecha a aplicação começa aparecer dois erros

Runtime Error 217 at 004138A1

Execeção, Execeção de software desconhecida (0x0eedfade) em 0x7c81eb33.

eu clico pra fechar a primeira dae aparece essa segunda quando eu fecho a segunda mensagem de erro aparece a primeira denovo assim interminantemente até eu echar o programa pelo gerenciador de tarefas pode me explicar o q seja ??


Responder

Gostei + 0

07/08/2006

Buffering

Muito Obrigado Massuda agora vou terminar o soft agradeço mesmo !!!!!!!

vlw !!!!!!!!!!!!!


Responder

Gostei + 0

08/08/2006

Siam

Vc também pode substituir o ShareMem, trocando string por PChar.


Responder

Gostei + 0

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

Aceitar