-
March 27th, 2024, 07:31 PM
#1
C2882: 'ClassLibrary2' : illegal use of namespace identifier in expression
Hi all,
I need your help.I am working on a class library project using c++ to create the function that I want to use to call the function from my windows application.
When I try this:
Code:
ClassLibrary2a^ class1a = gcnew ClassLibrary2a;
I am getting the errors:
C2882: 'ClassLibrary2a' : illegal use of namespace identifier in expression
C2065: 'class1a' : undeclared identifier
C2061: syntax error : identifier 'ClassLibrary2a'
I have added the ClassLibrary2a dll in the reference but it have make no different as I am still getting the same errors.
Here is my form code:
#pragma once
Code:
namespace test_window_application {
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 ClassLibrary2a;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(78, 116);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(284, 262);
this->Controls->Add(this->button1);
this->Name = L"Form1";
this->Text = L"Form1";
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
//ClassLibrary2a^ class1a = gcnew ClassLibrary2a::Class1;
ClassLibrary2a^ class1a = gcnew ClassLibrary2a;
}
};
}
Here is the ClassLibrary2a code:
// ClassLibrary2a.h
#pragma once
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System:ata;
using namespace System:iagnostics;
using namespace System::IO;
Code:
namespace ClassLibrary2a {
public ref class Class1
{
// TODO: Add your methods for this class here.
public: void MyMethodNew() {
// Do something in the method
//ContactsControl^ contact = gcnew ContactsControl();
//contact->label1->Text = "hello chris";
MessageBox::Show("message", "title");
}
};
}
I dont really understand why I am getting the errors as it doesn't make any sense. I have included the `using namespace ClassLibrary2a` but it have make no different. I am using managed c++/cli
Do you know why I am getting the errors?
Do you know how I can fix it?
I have tried everything included the namespace and added in the reference but it have make no different. I couldn't be able to find out myself how to resolve it.
Any advice would be much appreciated.
-
March 28th, 2024, 03:11 AM
#2
Re: C2882: 'ClassLibrary2' : illegal use of namespace identifier in expression
I guess your problem is in your code: it has nothing to do with the native C++, it looks like Managed C++/CLI.
So I'll move your question to the more appropriate forum.
Victor Nijegorodov
-
May 22nd, 2024, 04:02 AM
#3
Re: C2882: 'ClassLibrary2' : illegal use of namespace identifier in expression
The error message "C2882: 'ClassLibrary2' : illegal use of namespace identifier in expression" typically occurs in C++ when you try to use a namespace in a way that the compiler doesn't expect or support. Here are a few common reasons for encountering this error:
Incorrect Syntax: Make sure you are using the namespace correctly. In C++, namespaces are typically used with the :: scope resolution operator. For example:
cpp
Copy code
using namespace ClassLibrary2; // Incorrect usage
Should be:
cpp
Copy code
using namespace ClassLibrary2; // Correct usage
Namespace Conflicts: Ensure that the namespace ClassLibrary2 is defined and available in your project. If you're trying to use a namespace that hasn't been declared or isn't accessible,
Namespace Collision: If you have multiple namespaces with the same name or if there's a naming conflict elsewhere in your code, it can cause this error. Check for any naming conflicts and resolve them by either renaming or fully qualifying the namespaces.
Compiler or IDE Issue: In rare cases, this error might be caused by a bug in the compiler or the IDE you're using. Updating your compiler or IDE to the latest version or trying a different compiler/IDE could potentially resolve the issue.
Without seeing the specific code causing the error, it's challenging to provide a more precise solution. If you could provide more context or the relevant code snippet where the error occurs, I could offer more targeted assistance.
Last edited by 2kaud; May 22nd, 2024 at 05:32 AM.
Reason: Removed URL link
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|