1

dll 作为非托管代码编译得很好,但是当我在项目属性中添加 /clr 并更改为在共享 DLL 中使用 MFC 时,mfCFtpConnection::GetCurrentDirectory 会给我 LNK2028 和 LNK2019 错误。这是未解决的令牌和未解决的永恒符号错误。

我有#include 并链接了wininet.lib。所以我很困惑。

我在网上阅读了一篇用户遇到此问题的帖子,它与 mfc100.lib 将 CFtpConnection::GetCurrentDirectory 重命名为 CFtpConnection::GetCurrentDirectoryA 有关。没有解决方法,微软代表说它将在未来版本的 mfc100.lib 中修复。我不知道这是否是问题所在。

这是帖子的链接。 链接到在线帖子

任何想法都让我发疯。

我也尝试了 CFtpConnection::GetCurrentDirectoryAsURL 并且代码编译得很好。

4

1 回答 1

0

我认为这个错误源于这样一个事实,即有一些#defines 用于绕过 MFC dll 的 CLR 限制。如果您使用的是 VS2010,您可以将鼠标悬停在方法名称上,您将在生成的文件中看到#define正在重命名您的方法的语句。.obj由于它已被重命名,您代码中的其他模块将无法链接到它。

于 2013-10-17T16:52:47.930 回答