1

dll はアンマネージ コードとして正常にコンパイルされますが、/clr を追加し、プロジェクト プロパティで共有 DLL で MFC を使用するように変更すると、mfCFtpConnection::GetCurrentDirectory で LNK2028 および LNK2019 エラーが発生します。これは、未解決のトークン エラーと未解決の永久シンボル エラーです。

#include して wininet.lib をリンクしました。だから私は困惑しています。

ユーザーがこの問題を抱えていて、mfc100.lib の名前を CFtpConnection::GetCurrentDirectory から CFtpConnection::GetCurrentDirectoryA に変更したことに関連する投稿をオンラインで読みました。回避策はなく、Microsoft の担当者は、mfc100.lib の将来のバージョンで修正されると述べています。それが問題かどうかはわかりません。

投稿へのリンクはこちらです。 オンライン投稿へのリンク

それが私を夢中にさせているアイデア。

また、CFtpConnection::GetCurrentDirectoryAsURL を試してみましたが、コードは正常にコンパイルされました。

4

1 に答える 1

0

#defineこのエラーは、MFC dll の CLR 制限を回避するために使用される sがいくつかあるという事実に起因すると思います。VS2010 を使用している場合は、メソッド名にカーソルを合わせると#define、生成されたファイルでメソッドの名前を変更しているステートメントが表示され.objます。名前が変更されたため、コード内の他のモジュールはそれにリンクできなくなります。

于 2013-10-17T16:52:47.930 に答える