[英]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.