0

現在、32ビットC ++アプリケーションを64ビットアプリケーション(VS 2010)に移行中です。このアプリケーションは、10年前にIBM VisualAge C ++ 3.6.5forWindowsで開発されました。IBMはこのコンパイラーのサポートを停止したため、VS2010への移行中に問題が発生しました。

これは主に、いくつかのライブラリが欠落していることが原因です。

サンプルエラー:

エラーLNK2019:関数 "int __cdecllocate_heap_storage_(void)"で参照される未解決の外部シンボル__uopen(?allocate_heap_storage @@ YAHXZ)エラーLNK2019:関数 "int __cdecllocate_heap_storage_(void)"(?allocate_で参照される未解決の外部シンボル__ucreateエラーLNK2019:関数 "int __cdecldeallocate_heap_storage_(void)"(?deallocate_heap_storage @@ YAHXXZ)で参照される未解決の外部シンボル__udestoryエラーLNK2019:関数 "int __cdecldeallocate_heap_storage_(void)"で参照される未解決の外部シンボル__ucloseエラーLNK2019:関数 "int __cdecl alloc_share_mem_(int、int)"(?alloc_share_mem @ YAPAXHH @ Z)で参照されている未解決の外部シンボル__umalloc

上記の関数はumalloc.hで定義されていますが、定義がありません。

どうすればこれを解決できますか?

4

1 に答える 1

0

上記のエラーについて、これらの関数「_ucreate」、「_ udestory」、 「 _ uclose 」、「_umalloc」は、リンク時に見つかりませんでした.これらの関数は、Visual Ageが提供するランタイムライブラリにあったと思います.これらのlibファイルを見つけることができれば.ランタイム ライブラリの場合、それらをリンクの入力に入れることができます。コンパイル フェーズには合格する可能性がありますが、起動に失敗する可能性があります。

ここでの 1 つの提案は、上記の関数を Windows 関数に置き換えることです。上記のすべての関数は、メモリ割り当てに関連しています。

于 2012-11-19T09:16:08.977 に答える