嘿,我正在为我的应用程序实现一个插件系统(但要使他们能够绘制等,它们需要我的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/