Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z podpięciem DLL w php
Forum PHP.pl > Forum > PHP
slawek635
Witam,

Napisałem sobie własną bibloteke dll. Jest to kod w Delphi. Skompilowałem i podstawiłem do /php/ext. Po wywołaniu tej funkcji z poziomu php nie działa. Oczywiście z poziomu innych programów funkcja w tej bibliotece jest widziana i działa ale nie w php.

Czy trzeba jeszcze gdzieś dodatkowo skonfigurować php ?
Może ktoś kiedyś próbował własną Dll podłączyć i miał podobny problem ?

<?php
print AddBackSlash("123");
?>

--------------------------------------------------------------------
library xxx;

uses
SysUtils, Classes;

type
TErrorToLongString = class(Exception);

function AddBackSlash(var s: ShortString): ShortString;
begin
Result:= '';
if Length(s) = 255 then
raise TErrorToLongString.Create('Za długi string!');
if s[Length(s)] <> '\' then
Insert('\', s, Length(s) + 1);
Result:= s
end;

exports
AddBackSlash name 'AddBackSlash';

begin
end.


Pozdrawiam
Sławomir Gruszka
slawek635
Witam,

Prawdę muwiądz jestem specjalistą w pisaniu programów w Delphi, Ale trafiła mi się do napisania aplikacja w php i dlatego mam taki problem. W C++ mało pisze a w sumie niewiele. Ale z tego co wiem to bibloteka Dll powinna działać wszędzie tak samo.

Pozdrawiam
Sławomir Gruszka
kszychu
Zaraz, zaraz... Co robi ten dll? Bo może da sięto napisać w samym php, bez użycia dodatkowych bibliotek.
splatch
W pliku php.ini musisz dodać linię extension = twoj.dll albo włączyć plik poprzez funkcję dl" title="Zobacz w manualu php" target="_manual.
LBO
dodaje \ na koncu stringa s (nie dluzszego niz 255 znakow).... zwraca string, albo wywala blad

  1. <?php
  2.  
  3. function AddBackSlash($s) {
  4.  if (strlen($s) > 254) {
  5.  return false
  6.  };
  7.  if (substr($s, -1, 1) != "\\") {
  8.  $s .= "\\";
  9.  }
  10.  return $s
  11. }
  12.  
  13. ?>
slawek635
Witam,

Gryps jest w tym że mam napisanych ze 200 funkcji i teraz to przerabiać na php to lekka poraszka.

Taki jest błąd.

Fatal error: Call to undefined function AddBackSlash() in C:\serwer\strony\www\Agencja reklamowa\Index.php on line 2


Żecz w tym że zależy mi na podłączeniu swojej bibloteki do php, nie jest istotne co robi ta funkcja.

Tak wpisałem tu "extension = twoj.dll " ale nic z tego.

Dlatego tak się zastanawiam co jest nie tak.

Pozdrawiam
Sławomir Gruszka
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.