编辑:重命名全局变量就行了。同样在同一个项目中的其他CPP文件中重复使用。编辑器“混淆”变量,显示另一个具有相同名称的shared_ptr的内容!
感谢所有回答并试图提供帮助的人;)
在VS2012 IDE,VS2010编译器中,调试
从make_shared分配时,它不起作用(shared_ptr保持为nullptr)。
我可以在调试器中看到调用类ctor。
在头文件中
struct ROLLWRKAREA Workarea
{
short idLoc;
// ...
ROLLWRKAREA(short idLocation=LS_NOWHERE) :
idLoc(idLocation),
// …
};
typedef std::shared_ptr<ROLLWRKAREA> LPROLLWRKAREA;
在我的CPP中 - &gt;
static LPROLLWRKAREA pWA; // ...and pointer
BOOL CRollEx::OnInitDialog ()
{
CMMDialog::OnInitDialog ();
pWA = std::make_shared<ROLLWRKAREA>();
... pWA在此行之后为空(nullptr)。
这是预期的吗?我在这里做些蠢事吗?有解决方法吗?我试图避免使用.reset(new ROLLWRKAREA())
提前致谢
答案 0 :(得分:-2)
在行中pWA = std::make_shared<ROLLWRKAREA>();
你需要提供一些东西来分享...
在那之前,你得到的是你能想到的最明智的:NULL