所有
我使用VS 2010 sp1创建了一个静态lib项目,并简单地定义了一个带有成员函数的类(代码片段):
·H:
namespace puphttp{
class CRequester
{
public:
void RequesterUpdate();
};
}
的.cpp:
#include "StdAfx.h"
#include "Requester.h"
#include <iostream>
using namespace std;
namespace puphttp{
void CRequester::RequesterUpdate()
{
cout<<"updating";
}
}
最后我链接了lib文件并尝试调用以下代码:
puphttp::CRequester c;
c.RequestUpdate();
我编译时发生以下链接错误: 错误LNK2001:未解析的外部符号&#34; public:void __cdecl puphttp :: CRequester :: RequestUpdate(void)&#34;的(?RequestUpdate @ CRequest @ @@ puphttp QEAAXXZ)
然后我使用dumpbin检查我的lib中的实际函数名称,它是: 的(?RequestUpdate @ CRequest @ @@ puphttp QAEXXZ)
所以差异是 QEAAXXZ vs QAEXXZ ,我还没有时间进入名称修改规则,所以任何快速回答?非常感谢。