[英]Migration from IBM VisualAge C++ 3.6.5 to VS 2010
我们正在将32位C ++应用程序迁移到64位应用程序(VS 2010)。 此应用程序是10年前使用IBM VisualAge C ++ 3.6.5 for Windows开发的。 由于IBM停止了对该编译器的支持,因此在将其移植到VS 2010时遇到了问题。
这主要是由于缺少某些库。
错误样例:
错误LNK2019:函数“ int __cdeclallocate_heap_storage_(void)”中引用的未解析的外部符号__uopen(?allocate_heap_storage @@ YAHXZ)错误LNK2019:函数“ int __cdeclallocate_heap_storage_(void)@H}中引用的未解析的外部符号__ucreate错误LNK2019:函数“ int __cdecl deallocate_heap_storage_(void)”中引用的未解析外部符号__udestory(?deallocate_heap_storage @@ YAHXXZ)错误LNK2019:函数“ int __cdecl deallocate_heapheate_ate_ate_ate_ate_ate_void_storage_void错误LNK2019:函数“ int __cdecl alloc_share_mem_(int,int)”(?alloc_share_mem @ YAPAXHH @ Z)中引用的未解析的外部符号__umalloc
上面的函数在umalloc.h中定义,但是我们缺少这些定义。
我们该如何解决呢?
对于以上错误, 链接时找不到这些函数“ _ ucreate”, _ udestory,_ uclose, _umalloc,我认为这些函数在Visual Age提供的运行时库中。如果可以找到这些函数的lib文件,运行时库,您可以将它们放在链接的输入中,它可能会通过编译阶段,但可能无法启动。
这里的一个建议是用Windows函数替换上面的函数。 以上所有功能均与内存分配有关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.