[英]Included header file is not being seen
編輯:新文件。 我在訪問Form1類中的公共功能時遇到麻煩。 嘗試使用標識符時,找不到標識符。 Form1中:
#pragma once
#include "OpenGL.h"
#include "serialcom.h"
#include "calculations.h"
namespace GUI_1 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace OpenGLForm;
/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
OpenGL = gcnew COpenGL(this->panel4, this->label16, 785, 530);
}
void changelabel2(float num)
{
label2 -> Text = " " + num;
}
protected: ...
OpenGL.h:
#include "stdafx.h"
#ifndef opengl
#define opengl
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <math.h>
// Declare globals
...
using namespace System::Windows::Forms;
namespace OpenGLForm
{
public ref class COpenGL: public System::Windows::Forms::NativeWindow
{
public:
COpenGL(System::Windows::Forms::Panel ^ parentForm, System::Windows::Forms::Label ^ lbl, GLsizei iWidth, GLsizei iHeight)
{
CreateParams^ cp = gcnew CreateParams;
c_p_v v1, v2;
changelabel2(189);
...
所以那是行不通的(上面,在“ changelabel2”中)。 也許是因為我沒有使用類名?
這是我的主要:
#include "stdafx.h"
#include <string.h>
#include <iostream>
#include <stdio.h>
#include < vcclr.h >
#include < stdio.h >
#include < stdlib.h >
#include < vcclr.h >
#include "Form1.h"
#include "calculations.h"
#include "serialcom.h"
using namespace GUI_1;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Form1^ form = gcnew Form1();
Application::Run(form);
return 0;
}
調用form.changelabel2也不起作用。
看起來您在OpenGL.h和Form1.h之間具有循環依賴關系
如果可以,請嘗試刪除#include "Form1.h"
,或將其轉換為class Form1;
的前向聲明class Form1;
另外,在標頭中using namespace
時要小心,因為它會污染隨后包含在其中的任何文件的名稱空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.