Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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
Windows c++;11包括内部#ifdef_Windows_Debugging_C++11 - Fatal编程技术网

Windows c++;11包括内部#ifdef

Windows c++;11包括内部#ifdef,windows,debugging,c++11,Windows,Debugging,C++11,在我的Visual studio 2012中,我有C++11静态函数: kuku* kuku::createKuku(bool enable, std::string dumpPat) { #ifndef ANDROID #include "kukuWin.h" return new kukuWin(enable, dumpPat); #else #include "kukuAndroid.h" return new kukuAndroid(enable, dum

在我的Visual studio 2012中,我有C++11静态函数:

kuku* kuku::createKuku(bool enable, std::string dumpPat)
{
#ifndef ANDROID
    #include "kukuWin.h"
    return new kukuWin(enable, dumpPat);
#else
    #include "kukuAndroid.h"
    return new kukuAndroid(enable, dumpPat);
#endif
}
在c++98中它可以工作,但在这里我有多个错误:

1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\excpt.h(29): error : linkage specification is not allowed
1>    extern "C" {
1>    ^
1>  
1>C:\Program Files (x86)\Windows Kits\8.0\Include\shared\windef.h(17): error : linkage specification is not allowed
1>    extern "C" {
1>    ^
1>  
1>C:\Program Files (x86)\Windows Kits\8.0\Include\shared\specstrings.h(49): error : linkage specification is not allowed
1>    extern "C" {
1>    ^
1>  
1>C:\Program Files (x86)\Windows Kits\8.0\Include\shared\driverspecs.h(133): error : linkage specification is not allowed
1>    extern "C" {
1>    ^
1>  
1>C:\Program Files (x86)\Windows Kits\8.0\Include\shared\minwindef.h(42): error : linkage specification is not allowed
1>    extern "C" {
1>    ^
:)

有人能帮我吗

谢谢

一个
#include
指令会将包含文件的全文准确地放在指令所在的位置。所以“KuuWun.h”中的所有东西都会在你的代码> CurATKUKU/<代码>函数的中间打个盹,它不属于。

您几乎总是会将包含内容放在源文件的顶部。

一个
#include
指令会将包含文件的全文准确地放在指令所在的位置。所以“KuuWun.h”中的所有东西都会在你的代码> CurATKUKU/<代码>函数的中间打个盹,它不属于。

您几乎总是会将包含内容放在源文件的顶部。

一个
#include
指令会将包含文件的全文准确地放在指令所在的位置。所以“KuuWun.h”中的所有东西都会在你的代码> CurATKUKU/<代码>函数的中间打个盹,它不属于。

您几乎总是会将包含内容放在源文件的顶部。

一个
#include
指令会将包含文件的全文准确地放在指令所在的位置。所以“KuuWun.h”中的所有东西都会在你的代码> CurATKUKU/<代码>函数的中间打个盹,它不属于。



您几乎总是将包含项放在源文件的顶部。

您显示的代码没有任何
extern“C”
,那么您为什么认为这是错误的根源呢?错误可能在其中一个包含的文件中,因此请确定实际包含的文件,然后查看该文件。看起来您包含了一个带有声明的头文件。在函数中(无论是在c++11中还是在任何版本的c++)1中都不能这样做。与外部“c”无关。2。当然,你可以在c++中完成。好的,请显示文件,让我们确定是否可行。我非常怀疑,但你有能力证明我错了。你展示的代码没有任何外部“C”,那么你为什么认为这是错误的根源呢?错误可能在其中一个包含的文件中,因此请确定实际包含的文件,然后查看该文件。看起来您包含了一个带有声明的头文件。在函数中(无论是在c++11中还是在任何版本的c++)1中都不能这样做。与外部“c”无关。2。当然,你可以在c++中完成。好的,请显示文件,让我们确定是否可行。我非常怀疑,但你有能力证明我错了。你展示的代码没有任何外部“C”,那么你为什么认为这是错误的根源呢?错误可能在其中一个包含的文件中,因此请确定实际包含的文件,然后查看该文件。看起来您包含了一个带有声明的头文件。在函数中(无论是在c++11中还是在任何版本的c++)1中都不能这样做。与外部“c”无关。2。当然,你可以在c++中完成。好的,请显示文件,让我们确定是否可行。我非常怀疑,但你有能力证明我错了。你展示的代码没有任何外部“C”,那么你为什么认为这是错误的根源呢?错误可能在其中一个包含的文件中,因此请确定实际包含的文件,然后查看该文件。看起来您包含了一个带有声明的头文件。在函数中(无论是在c++11中还是在任何版本的c++)1中都不能这样做。与外部“c”无关。2。当然,你可以在c++中完成。好的,请显示文件,让我们确定是否可行。我非常怀疑,但你有能力证明我错了。我怀疑你是对的,但从技术上讲,如果文件实际上不是头文件,而是一些神秘的代码块,那么在函数中包含include指令可能是绝对正确的。此函数只执行一次,作为应用程序初始化阶段的抽象工厂。@user4108878这不是执行问题,而是编译问题。@stefan是的,“几乎总是”是为了阻止迂腐。@Sneftel Hehe,对不起,我默认用
-pedantic
阅读答案;-)我想你是对的,但从技术上讲,如果这些文件实际上不是头文件,而是一些神秘的代码块,那么在函数中使用include指令可能是绝对正确的。这个函数只执行一次,作为应用程序初始化阶段的抽象工厂。@user4108878这不是执行问题,而是编译问题。@stefan是的,是的“几乎总是这样“是为了阻止学究风气。@斯奈夫特尔·赫赫,对不起,我默认用
-pedantic
阅读答案;-)我想你是对的,但从技术上讲,如果这些文件实际上不是头文件,而是一些神秘的代码块,那么在函数中使用include指令可能是绝对正确的。这个函数只执行一次,作为应用程序初始化阶段的抽象工厂。@user4108878这不是执行问题,而是编译问题。@stefan是的,是的“几乎总是这样“是为了阻止学究风气。@斯奈夫特尔·赫赫,对不起,我默认用
-pedantic
阅读答案;-)我想你是对的,但从技术上讲,如果这些文件实际上不是头文件,而是一些神秘的代码块,那么在函数中使用include指令可能是绝对正确的。这个函数只执行一次,作为应用程序初始化阶段的抽象工厂。@user4108878这不是执行问题,而是编译问题。@stefan是的,是的“几乎总是”是为了阻止迂腐。@Sneftel-Hehe,对不起,我默认用
-pedantic
阅读答案;-)