嘿,我正在为我的应用程序实现一个插件系统(但要使他们能够绘制等,它们需要我的Window类以及所有这些东西)

像这样:

CWindow* window = new CWindow();


这是在启动时完成的,显然如果我这样做了:

std::cout << window << std::endl;


每次重新运行应用程序时,指针都会更改。

我如何为其找到静态指针(不变),以便可以在插件SDK中使用它,例如:

CWindow* GetWindow() {
  return (CWindow*)Addres;
}

最佳答案

您不需要在每次程序运行时都使用相同的地址:您只需要知道可以在哪里可靠地找到该地址。

作为一种快速而肮脏的解决方案(示例),您可以将new CWindow()返回的地址存储在将包含在插件中的标头中声明的全局变量中:然后该变量将可供您的插件访问,从而为插件提供访问权限到窗口的地址。该地址的实际值只是一个意外。

关于c++ - 查找指向对象的静态指针?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32200426/

10-11 02:30