Я создал проект C++/CLI (Visual C++) в профессионале visual studio 2010. Затем я добавил в проект очень маленький класс C++. Followng это кодКак вызвать код C++ из кода C++/CLI?
#include <stdafx.h>
#include <iostream>
using namespace std;
class Tester
{
public:
Tester(){};
void show()
{
cout << "OKOK..Printing" << endl;
}
};
Теперь я перетащен кнопка на автоматически построенном с графическим интерфейсом, и я собираюсь позвонить выше коду с кнопки. Ниже приведен код кнопки.
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Tester ^t = gcnew Tester();
//Test t; - giving errors as well
}
};
Когда я выполнить код, я получаю следующую ошибку
1>------ Build started: Project: testdamn, Configuration: Debug Win32 ------
1>Build started 7/1/2013 12:59:38 PM.
1>InitializeBuildStatus:
1> Touching "Debug\testdamn.unsuccessfulbuild".
1>GenerateTargetFrameworkMonikerAttribute:
1>Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
1>ClCompile:
1> All outputs are up-to-date.
1> Test.cpp
1> testdamn.cpp
1>c:\users\yohan\documents\visual studio 2010\projects\testdamn\testdamn\Form1.h(79): error C2065: 'Tester' : undeclared identifier
1>c:\users\yohan\documents\visual studio 2010\projects\testdamn\testdamn\Form1.h(79): error C2065: 't' : undeclared identifier
1>c:\users\yohan\documents\visual studio 2010\projects\testdamn\testdamn\Form1.h(79): error C2061: syntax error : identifier 'Tester'
1> Generating Code...
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.86
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Я также заметил, когда я снял класс вызова с помощью кнопки, программа построения хорошо. Итак, как я могу вызвать эти классы C++ из C++/CLI?
Пожалуйста, помогите!
Вы включили 'заголовок файла класса Tester' в форму GUI? –
@MarceloCantos: Нет, потому что у этого нет файла заголовка. Это требуется? –
Да. В коде GUI должно быть указано определение класса Tester. Вот почему он жалуется: «Тестер: необъявленный идентификатор». Кроме того, вы не можете рассматривать его как класс .Net. '^ t' и' gcnew' не будут работать. –