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

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

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

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

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

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

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

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

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

2

Решение

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

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

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

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

а также

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

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 загружена.

2