Связывание файлов C .obj с приложением Delphi, разрешение стандартных зависимостей C.

StackOverflow https://stackoverflow.com/questions/1966692

  •  21-09-2019
  •  | 
  •  

Вопрос

Я скомпилировал libxml2 с помощью компилятора командной строки BCC 5.5, теперь у меня есть множество файлов .obj, которые я хотел бы связать с моим приложением Delphi.К сожалению, я получаю множество ошибок «Неудовлетворенное предварительное или внешнее объявление», указывающих на стандартные функции библиотеки C, такие как memcpy, open, Recv и т. д.Что мне сделать, чтобы правильно его скомпилировать?Я бы хотел избежать зависимости от msvcrt.dll или любых других внешних библиотек.

Заранее спасибо!

Это было полезно?

Решение

В зависимости от вашей версии Delphi должен существовать модуль crtl.dcu, с которым вы можете связаться.Просто используйте директиву $L для каждого файла .obj в модуле, который также использует crtl.Вам также может потребоваться «использовать» другие устройства, такие как Windows, WinSock и т. д.Цель состоит в том, чтобы предоставить символы и функции, которые необходимо разрешить на этапе соединения.

Это тот же метод, который используется для статического связывания кода DataSnap TClientDataSet, который также используется для сборки Midas.dll.

Другие советы

вам следует прочитать статью Руди здесь «Использование объектных файлов C в Delphi»

Не используйте эти функции, а перепишите их для прямого вызова функций операционной системы (kernel32/system32).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top