我的托管c++代码无法编译,并显示错误消息
.\Window.cpp(11) : error C2440: 'initializing' : cannot convert from 'System::Windows::Forms::Form ^' to 'Enviroment::Window ^'
No user-defined-conversion operator available, or
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
.\Window.cpp(11) : error C3754: delegate constructor: member function 'Enviroment::Window::_keydown' cannot be called on an instance of type 'System::Windows::Forms::Form ^'
Error 1 error C2440: 'initializing' : cannot convert from 'System::Windows::Forms::Form ^' to 'Enviroment::Window ^' c:\Users\Thomas\Documents\Visual Studio 2008\Projects\Project_X\Project_X\Window.cpp 11
Error 2 error C3754: delegate constructor: member function 'Enviroment::Window::_keydown' cannot be called on an instance of type 'System::Windows::Forms::Form ^' c:\Users\Thomas\Documents\Visual Studio 2008\Projects\Project_X\Project_X\Window.cpp 11在window.h中
ref class Window
{
public:
Window();
void _keydown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e);
}在window.cpp中
Window::Window()
{
Form^ form = gcnew Form();
form->KeyDown+= gcnew KeyEventHandler(form, &Window::_keydown);
}以及以后的
void Window::_keydown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e)
{
//stuff
}帮助!
发布于 2010-01-03 08:57:19
我想你的意思是说:
form->KeyDown+= gcnew KeyEventHandler(this, &Window::_keydown);在C++中,一个类函数指针由两部分组成,一个是实际的指针(这部分您是对的),另一个是指向要传递给函数的"this“的指针,该指针属于包含该函数的类的类型。这是你的Window,不是微软的Form。
https://stackoverflow.com/questions/1993524
复制相似问题