Problemy z u?życiem plików *.obj e Delphi 7, wygenerowany

0

Wygenerowałem pliki *.obj w C++ Buliderze bo miałem do przeniesienia ogromy kod w C++. No i je wygenerowałem. Następnie użyłem tego pliku w Delphi za pomocą dyrektywy:

{$L plik.obj}

Teoretycznie wszystko powinno być dobrze... A jednak... Kompilator wyświetla mi błąd ( a raczej kilka ):

  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_memset'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_memcpy'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_free'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '__ftol'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_malloc'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_fopen'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_fscanf'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_fclose'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_fprintf'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_strlen'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_ctime'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_sprintf'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '__streams'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_vsprintf'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_fflush'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_memmove'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_lseek'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_rand'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_fabs'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_cos'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '_sin'
  [Error] Unit1.pas(18235): Unsatisfied forward or external declaration: '__turboFloat'

itd..

Wiem że kalauzulą external w C++ "informuje" się kompilator o tym że dany element (np. zmienną) ma się zamiar "zadeklarować" dalej. Doszedłem do wniosku że kompilatorowi (a raczej procedurom w *.obj) brakuje tych procedur co są wymienione w "ERRORACH". Teraz taki problem... Czy aby poprawnie skompilować "to", muszę pisać ich odpowiedniku w Pascalu(tych niby brakujących procedur), czy wystarczy że dam odpowiedni plik *.obj z "zasobów" C++ Bulidera? A może takiego czegoś nie da się popranie skompilować w Delphi? A może wystarczy że odpowiednio skonfiguruję kompilator C++?

POMOCY !!!

// Nie przyklejaj takich tematów - detox

External - mała pomyłka - chodzi o extern w C++.

0

Nie znam się specjalnie na tym, ale czy Ty czasem nie musisz zadeklarować jeszcze tych procedur w samym Delphi ?

procedure HelloWord(i, j, k: Integer); external;

No ale jak mówie - mogę się mylić...

0

Tu się nie mylisz... Masz rację już raz kiedyś widziałem coś takiego... Ale jak wyeksportować te procedury z pliku *.obj? I czy muszę pisać odpowiedniki tych procedur co są w błędach, ręcznie w Delphi...

Mam nawet przykład zastosowania plików OBJ w Delphi (tam są "ręcznie" zaimplementowane procedury w stylu memset):

<url>www.bijatyka.republika.pl/glcanvas.rar</url>

Jest to konkretnie unit PNGZLIB.pas...

Czy Ktoś zna format i zastosowania plików OBJ firmy Borland... :-(

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