C++ cli 包括不同的案例标题

C++ cli 包括不同的案例标题,c++-cli,C++ Cli,是否可用于案例1一个标题和案例2另一个标题? 因为当我在程序中使用这两个标题时,我会出现不明确的符号错误 标题1(winapifunctions.h) 主程序 #include "stdafx.h" #include "classes.h" #include "winapifunctions.h" int main(array<System::String^>^ args) { //read x switch(x){ case 1: {CallWindowProc("titl

是否可用于
案例1
一个标题和
案例2
另一个标题? 因为当我在程序中使用这两个标题时,我会出现
不明确的符号
错误

标题1(winapifunctions.h)

主程序

#include "stdafx.h"
#include "classes.h"
#include "winapifunctions.h"
int main(array<System::String^>^ args)
{
  //read x
  switch(x){ case 1: {CallWindowProc("title");break;} case 2: { Check^ obj = gcnew Check();break;}
};
#包括“stdafx.h”
#包括“classes.h”
#包括“winapifunctions.h”
int main(数组^args)
{
//读x
开关(x){case 1:{CallWindowProc(“title”);break;}case 2:{Check^obj=gcnew Check();break;}
};

和错误-
IServiceProvider:不明确的符号

简短回答:否

Long answer:include在编译时由预处理器处理,而您的
case
语句在运行时处理。无法在运行时实现编译时


你到底想达到什么目的?

简短回答:不

Long answer:include在编译时由预处理器处理,而您的
case
语句在运行时处理。无法在运行时实现编译时


您到底想实现什么?

您可以使用以下代码解决此问题:

// 1.cpp
case 1:
    DoCase1();
    break;
case 2:
    DoCase2();
    break;

// 2.cpp
#include <Windows.h>
void DoCase1()
{
    // ...
}

// 3.cpp
#include <AnotherHeader.h>
void DoCase2()
{
    // ...
}
//1.cpp
案例1:
DoCase1();
打破
案例2:
DoCase2();
打破
//2.cpp
#包括
作废文件1()
{
// ...
}
//3.cpp
#包括
作废文件2()
{
// ...
}

如果您想发布更多代码和准确的错误消息,也许可以找到更好的解决方案。

您可以使用以下代码解决此问题:

// 1.cpp
case 1:
    DoCase1();
    break;
case 2:
    DoCase2();
    break;

// 2.cpp
#include <Windows.h>
void DoCase1()
{
    // ...
}

// 3.cpp
#include <AnotherHeader.h>
void DoCase2()
{
    // ...
}
//1.cpp
案例1:
DoCase1();
打破
案例2:
DoCase2();
打破
//2.cpp
#包括
作废文件1()
{
// ...
}
//3.cpp
#包括
作废文件2()
{
// ...
}

如果你想发布更多的代码和准确的错误消息,也许可以找到更好的解决方案。

我有一个头文件,其中包含使用
Windows.h
的方法。另一个头文件使用
名称空间系统,名称空间系统::Collections::Generic
,我想知道为什么当我同时使用这两个头文件时,会出现不明确的符号错误。但我没有在一个程序中编辑了两个标题。请更新您的问题,添加实际代码和您看到的错误消息。希望有人能够解决这个问题,因为我现在要睡觉了。祝您好运!@apt您所要做的就是完全限定符号引用。其中一些必须是
::MyFunction
,其他必须是
系统::Collections::Generic::MyFunction
。我的头文件包含使用
Windows.h
的方法。另一个头文件使用
名称空间系统,名称空间系统::Collections::Generic
我想知道为什么,但当我同时使用这两个头时,我得到了不明确的符号错误。但我需要在一个程序中使用这两个头。请更新您的问题n添加实际代码和您看到的错误消息。希望有人能够解决它,因为我现在要睡觉了。祝您好运!@apt您所要做的就是完全限定符号引用。其中一些必须是
::MyFunction
,而其他必须是
系统::集合::通用::MyFunction
// 1.cpp
case 1:
    DoCase1();
    break;
case 2:
    DoCase2();
    break;

// 2.cpp
#include <Windows.h>
void DoCase1()
{
    // ...
}

// 3.cpp
#include <AnotherHeader.h>
void DoCase2()
{
    // ...
}