Visual studio 2010 LNK2001-未解析的外部符号

Visual studio 2010 LNK2001-未解析的外部符号,visual-studio-2010,interop,c++-cli,Visual Studio 2010,Interop,C++ Cli,我知道这是一个常见的错误(在Visual Studio C++中),原因相当广泛,但我想我已经排除了中的相关建议-我在.lib文件中链接了这些内容,应该在其中定义(这是我拥有的示例应用程序链接的唯一一个使用相同.h文件的.lib-我在这里所做的基本点是尝试将该.lib包装为.dll,以便与C#一起使用)。尽管只包含与.h对应的一个.lib和no.cpp,但示例应用程序编译正常这一事实肯定意味着.lib定义了在.h中声明的内容(对吗?) 如果我能自信地阅读这个错误,可能会有所帮助。JSONRPCH

我知道这是一个常见的错误(在Visual Studio C++中),原因相当广泛,但我想我已经排除了中的相关建议-我在.lib文件中链接了这些内容,应该在其中定义(这是我拥有的示例应用程序链接的唯一一个使用相同.h文件的.lib-我在这里所做的基本点是尝试将该.lib包装为.dll,以便与C#一起使用)。尽管只包含与.h对应的一个.lib和no.cpp,但示例应用程序编译正常这一事实肯定意味着.lib定义了在.h中声明的内容(对吗?)

如果我能自信地阅读这个错误,可能会有所帮助。JSONRPCHandlerErrorType是未解析的符号吗?所有这些@符号和看似随机的字母在那里做什么

我很确定我一定错过了一些明显的东西。非常感谢你能帮我弄清楚是什么,如果我没有提供足够的信息继续下去,或者我错过了一些从之前的帖子中应该清楚的东西,我表示歉意

Error 1 Error LNK2001:未解析的外部符号“public:enum JSONRPCHandlerErrorType u thiscall JSONRPCHandler::handleRequest(类std::basic_string)”(?handleRequest@JSONRPCHandler@@$$FQAE?AW4JSONRPCHandlerErrorType@@V?$basic_string@DU?$char_traits@D@性病病毒$allocator@D@2@@@std@@@Z)C:\Users\Fergus\Documents\Visual Studio 2010\Projects\libspark\libspark\ManagedLibspark.obj ManagedLibspark

值得一提的是,以下是关于JSONRPCHandlerErrorType的.h文件:

typedef enum {
    JSONRPCHandlerErrorNone = 0,
    JSONRPCHandlerErrorParsing,
    JSONRPCHandlerErrorBadDocument,
    JSONRPCHandlerErrorNoIdSpecified,
    JSONRPCHandlerErrorNoObjectNameSpecified,
    JSONRPCHandlerErrorNoMethodNameSpecified,
    JSONRPCHandlerErrorNoParamsSpecified

} JSONRPCHandlerErrorType;

正如Hans Passant有用地解释的那样,所讨论的未解析符号是
HandlerRequest(class std::basic_string)
。链接器在我希望找到它的.lib中找不到这个函数的特定形式;我不知道为什么它会在.h文件中声明,但碰巧它对我要做的事情并不重要。还有另一种形式的函数,它同时接受字符串和回调函数,这对于我的目的


因此,我的问题一直是一个问题;我错误地排除了这一点,因为示例应用程序使用了相同的函数,并且编译得很好-但它使用了不同版本的函数,如果我能够在心里解析详细的错误消息告诉我的内容,我可能已经看到了。

它不是在抱怨枚举。它是找不到函数,HandlerRequest()。您的问题中没有任何相关内容可以帮助我们帮助您。现在您知道这是一个函数,请再次通读该链接问题。谢谢您,Hans。看起来只有字符串的函数形式必须在.lib中未定义,尽管出现在.h中;示例应用程序仅使用同时包含字符串和字符串的版本回调函数。的可能重复项