Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 函数给出VS2008 SP1中x64配置的链接错误_C++_Visual Studio 2008_C++11 - Fatal编程技术网

C++ 函数给出VS2008 SP1中x64配置的链接错误

C++ 函数给出VS2008 SP1中x64配置的链接错误,c++,visual-studio-2008,c++11,C++,Visual Studio 2008,C++11,在x64配置中使用std::tr1::函数,我得到了VS2008SP1中的以下链接错误。相同的代码适用于Win32配置。这是64位编译器中的错误,还是我遗漏了什么 #include <iostream> #include <functional> typedef std::tr1::function<void()> FnCallBack; void test() { std::cout << "Test"; } int main(in

在x64配置中使用std::tr1::函数,我得到了VS2008SP1中的以下链接错误。相同的代码适用于Win32配置。这是64位编译器中的错误,还是我遗漏了什么

#include <iostream>
#include <functional>

typedef std::tr1::function<void()> FnCallBack;

void test()
{
    std::cout << "Test";
}

int main(int argc, char* argv[])
{
    FnCallBack f = &test;

    f();

    return 0;
}
#包括
#包括
typedef std::tr1::函数FnCallBack;
无效测试()
{

std::cout我遇到了与您相同的问题!我检查了我的vs2008版本和项目设置,看起来一切正常。在Win32配置中,没有错误,但X64我得到了与您相同的链接错误

最后,我再次安装了vs2008 sp1(注意:不要重新安装,只需再次运行vs2008 sp1安装程序)。链接错误消失了


我不知道为什么,但也许您可以尝试解决这个问题。

在解决方案中添加x64平台后,在新的VS2008 SP1项目中,您的代码构建的逐字复制很好。您有一个配置问题。我所做的是1)创建一个新项目2)添加x64配置,从win32 3)在c++->预处理器中复制设置,将WIN32更改为WIN64。还需要什么吗?我从未在预处理器中将WIN32更改为WIN64,也从未遇到过问题(vc2008、vs2010、vs2012)…LOL。总之,刚刚完成。没有更改任何内容,构建良好。您确定您的配置是x64吗?我在添加x64配置后编译了配置,但打印了sizeof(void*)仍然给出了值4。然后我添加了宏WIN64并得到了正确的指针大小(8)。是的。这不是我的第一个64位项目。好吧,WIN32/WIN64宏不会改变任何东西。从未使用过它,我的指针是8字节。