Миграция с IBM VisualAge C ++ 3.6.5 на VS 2010

Мы находимся в процессе миграции 32-битного приложения C ++ в 64-битное приложение (VS 2010). Это приложение было разработано 10 лет назад с помощью IBM VisualAge C ++ 3.6.5 для Windows. Поскольку IBM прекратила поддержку этого компилятора, мы сталкиваемся с проблемами при переносе его на VS 2010.

Это в основном из-за некоторых отсутствующих библиотек.

Примеры ошибок:

ошибка LNK2019: неразрешенный внешний символ __uopen, на который ссылается функция «int __cdecl allocate_heap_storage_ (void)» (? allocate_heap_storage @@ YAHXZ)
ошибка LNK2019: неразрешенный внешний символ __ucreate, указанный в функции «int __cdecl allocate_heap_storage_ (void)» (? allocate_heap_storage @@ YAHXZ)
ошибка LNK2019: неразрешенный внешний символ __udestory, на который есть ссылка в функции «int __cdecl deallocate_heap_storage_ (void)» (? deallocate_heap_storage @@ YAHXXZ)
ошибка LNK2019: неразрешенный внешний символ __uclose, на который ссылается функция «int __cdecl deallocate_heap_storage_ (void)» (? deallocate_heap_storage @@ YAHXXZ)
ошибка LNK2019: неразрешенный внешний символ __umalloc, указанный в функции «int __cdecl alloc_share_mem_ (int, int)» (? alloc_share_mem @ YAPAXHH @ Z)

Вышеуказанные функции определены в umalloc.h, но мы пропускаем определения.

Как мы можем решить это?

0

Решение

Для ошибок выше, эти функции «_ucreate»,_udestory, _uclose,_umalloc «не найдены при компоновке, я думаю, что эти функции были в библиотеках времени выполнения, предоставляемых Visual Age. Если вы можете найти файлы lib этих библиотек времени выполнения, вы можете поместить их во входную ссылку, она может пройти фаза компиляции, но может не запуститься.

Одно из предложений здесь состоит в том, чтобы заменить вышеуказанные функции на функции Windows. Все вышеперечисленные функции связаны с распределением памяти.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]