回 帖 发 新 帖 刷新版面

主题:_beginthread在net下的应用问题

书本上的原程序,网上也有很多一样的,可是我用.net就有问题。
原书源代码:
#include<stdio.h>
#include<stdlib.h>
#include<process.h>

int addem(int);
int main(int argc ,char *argv[])
{
    
    _beginthread((void (*)(void *))addem,0,(void *)5);
    addem(5);
    return 0;
}
int addem(int count)
{
    int i,sum;
    sum = 0;
    for(i=1;i<=count;++i)
    {
        printf("The value of i is %d\n",i);
        fflush(stdout);
        sum += i;
    }
    printf("The sum is %d\n",sum);
    fflush(stdout);
    return 0;
}
它出现的问题是:c:\documents and settings\soft\桌面\tt\t\t.cpp(14): error C3861: “_beginthread”: 即使使用参数相关的查找,也未找到标识符

这个文件是这样生成的: 
Visual Studio.net
建立C++控制台程序,然后就可以了。

msdn的解释是:
Multithreaded versions of the C run-time libraries only.

To use _beginthread or _beginthreadex, the application must link with one of the multithreaded C run-time libraries.

在vc++6.0中说是可以这样:
在建立多线程的Windows程序时,需要在「Project Settings」对话框中做一些修改。选择「C/C++」页面标签,然后在「Category」下拉式清单方块中选择「Code Generation」。在「Use Run-Time Library」下拉式清单方块中,可以看到用于「Release」设定的「Single-Threaded」和用于Debug设定的「Debug Single-Threaded」。将这些分别改为「Multithreaded」和「Debug Multithreaded」。这将把编译器旗标改为/MT,它是编译器在编译多线程的应用程序所需要的。
可是在.net下怎么设置呢?

另外在vc++6.0中我设置了,编译运行都没有问题,可是却得不到正确的结果,不知道为什么??

哪位高人帮帮忙。
谢谢了。

回复列表 (共1个回复)

沙发

问题以解决。谢谢各位了!
[em1][em3]

我来回复

您尚未登录,请登录后再回复。点此登录或注册