Вариант или безопасный массив заблокирован при загрузке DLL в C++ Builder 10

Я обновил проект C++ 6 до C++ Builder 10.

Когда я загружаю DLL с LoadLibrary, выбрасываю это исключение.

HINSTANCE hInst;
hInst = LoadLibrary( "MyLibrary.dll" );

Project XXXX.exe поднял класс исключения EOutOfResources с сообщением "Вариант или безопасный массив заблокирован".

Я не брался за выражение "Вариант или безопасный массив заблокирован".

Я пытался загрузить DLL в новом пустом приложении. Загружается. Нет никаких проблем.

Но не могу загрузить DLL в существующий проект.

Как определить источник проблемы?

2 ответа

Решение

Причина проблемы;

Я сравнил два файла.cbproj с блокнотом ++

Я создал DLL с C++ Builder 10

<PropertyGroup>
    <ProjectGuid>{E3FB4C71-C382-46EC-A17D-5C25890309CD}</ProjectGuid>
    <ProjectVersion>18.0</ProjectVersion>
    <FrameworkType>VCL</FrameworkType>
    <Base>True</Base>
    <Config Condition="'$(Config)'==''">Debug</Config>
    <Platform Condition="'$(Platform)'==''">Win32</Platform>
    <TargetedPlatforms>1</TargetedPlatforms>
    <AppType>Library</AppType>
</PropertyGroup>

Я обновил DLL C++ Builder 6 до 10

<PropertyGroup>
    <ProjectGuid>{923C6CCC-2F12-4C36-B9B1-C765AE96A7A2}</ProjectGuid>
    <ProjectType>CppDynamicLibrary</ProjectType>
    <Base>True</Base>
    <Config Condition="'$(Config)'==''">Debug</Config>
    <FrameworkType>None</FrameworkType>
    <ProjectVersion>18.0</ProjectVersion>
    <Platform Condition="'$(Platform)'==''">Win32</Platform>
    <TargetedPlatforms>1</TargetedPlatforms>
    <AppType>Library</AppType>
</PropertyGroup>

Разница в FrameworkType.

Я заменил None To VCL.

DLL загружена.

Посмотрите, поможет ли это:

Миграция старых приложений C++ Builder в C++ Builder 10, Сиэтл

Специально эти два предложения:

Любые библиотеки, созданные с использованием более старой версии C++ Builder, необходимо будет перекомпилировать для использования в проекте C++ Builder 10 Seattle.

а также

Не позволяйте C++ Builder 10 Seattle преобразовывать ваш старый проект Builder. Скопируйте ваши файлы в новую папку, создайте новый проект и добавьте в него ваши исходные файлы.

Другие вопросы по тегам