出现了一个问题:在C中,你可以这样做:
//объявления
UG_S16 UG_Init( UG_GUI* g, void (*p)(UG_S16,UG_S16,UG_COLOR), UG_S16 x, UG_S16 y );
UG_GUI GUI_1;
void UserSetPixel(UG_S16 x, UG_S16 y, UG_COLOR c)
{
SetPixel(x, y, c);
}
// часть кода исполняемой функции в которую передаётся внешняя функция
UG_S16 UG_Init( UG_GUI* g, void (*p)(UG_S16,UG_S16,UG_COLOR), UG_S16 x, UG_S16 y )
{
UG_U8 i;
g->pset = (void(*)(UG_S16,UG_S16,UG_COLOR))p;
//..... }
//вызов в программе
UG_Init(&GUI_1, UserSetPixel , 320, 240);
尝试在 C++ 中重复但不成功:( 我最近开始从 C 切换到 C++,这是 C++ 中的代码:
private: void* UserSetPixel(UG_S16 x, UG_S16 y, UG_COLOR c) {
myBitmap->SetPixel(x, y, Color::FromArgb(c));
}
private: System::Void создатьНовуюGUIToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
//создание головного пункта
if (treeView1->SelectedNode->Index == 0) {
in++;
treeView1->SelectedNode->Nodes->Add("GUI", "GUI",in);
treeView1->ContextMenuStrip = this->contextMenuStrip2;
treeView1->SelectedNode->ContextMenuStrip;
UG_GUI GUI_1;
UG_Init(&GUI_1, UserSetPixel , 320, 240);
}
}
该错误是指
我UserSetPixel
在这里查看的行https://learn.microsoft.com/ru-ru/cpp/cpp/pointers-to-members?view=msvc-170但我无法弄清楚......UG_Init(&GUI_1, UserSetPixel , 320, 240);