Jak zrobić fukcję którą można używać w Excell

0

Potrzebuję napisać fukcje która dalej będę mógł uzywać w Excel. Przykładowo robie to tak:
library Project1;

uses
SysUtils,
Classes,
Windows;

{$R *.res}

function TylkoCyfry(Text: pchar): pchar;
var
j: integer;
begin
Result:='';
for j := 1 to Length(Text) do
begin
if not (Text[j] in ['0'..'9']) then Continue;
Result := pChar(Result+Text[j]);
end;
end;

exports
TylkoCyfry name 'TylkoCyfry',

begin
end.

Z poziomu Delphi działa prawidłowo. Jak użyć to w Excel? Próbuje tak:
w VB piszę
Private Declare Function TylkoCyfry Lib "Project.dll" Alias "ABCDE" (ByVal Tekst As String) As String

Function ABCDE(Tekst As String) As String

ABCDE = TylkoCyfry(Tekst)
End Function

Niestety zwraca mi bład argumentu
Jak to zrobić żeby zadziałało?

0

Nie mam specjalnie czasu, ale zwróć uwagę na;

zabawę z PCHar'ami (alokowałeś jakoś pamięć na wynik, dodałeś zero na końcu ?)
konwencja przekazywania parametrów (chyba stdcall)

0

OK.
Dodałem stdcall;
Ale nadal wywala #arg w exelu
Możesz coś więcej podpowiedzieć? Jest to dla mnie nowy temat..

0

Uhm, nie mam excel'a ani czasu ...

Może sprawdź sobie czy ta funkcja działa Ci jak ją użyjesz w innej aplikacji zrobionej w Delphi. Poza tym na pierszy rzut oka to coś chyba jeszcze miałeś nie halo z PChar'ami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1