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