dll编译为非托管代码,但是当我在项目属性中添加/ clr并更改为在共享DLL中使用MFC时,mfCFtpConnection :: GetCurrentDirectory给出了LNK2028和LNK2019错误。哪些是未解决的令牌和未解决的永久符号错误。
我有#include并链接了wininet.lib。所以我很困惑。
我在线阅读了一个用户遇到此问题的帖子,它与mfc100.lib相关,将CFtpConnection :: GetCurrentDirectory重命名为CFtpConnection :: GetCurrentDirectoryA。没有解决方案,微软代表说它将在mfc100.lib的未来版本中修复。我不知道这是不是问题。
这是帖子的链接。 Link to online Post
任何想法都让我发疯。
此外,我尝试了CFtpConnection :: GetCurrentDirectoryAsURL并且代码编译得很好。
答案 0 :(得分:0)
我认为这个错误源于这样一个事实,即有一些#define
用于偷偷摸摸对MFC dll的CLR限制。
如果您使用的是VS2010,则可以将鼠标悬停在方法名称上,您将看到在生成的#define
文件中重命名方法的.obj
语句。由于它已被重命名,代码中的其他模块将无法链接到它。