Каким-то образом создается 64-битная DLL с помощью Borland C ++ Builder - PullRequest
0 голосов
/ 03 апреля 2012

Я создал 32-битную DLL в Borland C ++ Builder XE2 без проблем.

Мне также было поручено создать 64-битную версию.Изучив «как», я узнал, что Builder еще не поддерживает 64-битные компиляции.

После некоторого осмотра все выглядело так, как будто единственным способом сделать это (или любым видом 64-битной компиляции) было использованиевизуальная студия экспресс командных строк.Таким образом, я попытался скомпилировать следующие команды:

CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /x64
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cl.exe" -IC:\projects\dll -I"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\include\windows\vcl" -I"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\include\windows\rtl" -MD -LD C:\projects\dll\dll.cpp -FeMyDLL.dll

Выполнение вышеуказанного дает мне следующую ошибку:

C: \ Program Files (x86) \ Embarcadero \ RADStudio \ 9.0 \ include \ windows \ rtl \ sysmac.h (162): фатальная ошибка C1189: #error: «System.hpp / sysmac.h и соответствующим заголовкам нужны поддержка __declspec (uuid (..)) и __uuidof»

Из-за гадания в Google я получил только несколько сообщений о добавлении #define DECLSPEC_UUID (guid), который совсем не помогает.

Так что мой вопрос: кто-нибудь когда-нибудь успешно компилировал Borland?Проект C ++ (или приложение / DLL, созданная в Borland) для 64-битной версии (плюс пошаговое руководство по использованию)?

1 Ответ

1 голос
/ 11 апреля 2012

Вы не можете скомпилировать код C ++ Builder RTL / VCL с помощью Visual Studio.Вам придется либо перенести код на Visual C ++ или другой компилятор C ++ и использовать его структуры вместо Embarcadero, либо переписать код в Delphi XE2, чтобы вы могли продолжить использовать RTL / VCL Embarcadero и 64-битный компилятор Delphi.

...