主题:_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中我设置了,编译运行都没有问题,可是却得不到正确的结果,不知道为什么??
哪位高人帮帮忙。
谢谢了。
原书源代码:
#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中我设置了,编译运行都没有问题,可是却得不到正确的结果,不知道为什么??
哪位高人帮帮忙。
谢谢了。