Can anyone here explain me what did I do wrong?

I'm creating a plugin for my engine right now. Here's how it works. I have a dll that will loaded by the main library. So while loading the dll, the dll calls the function addToList in the main library via singleton.

Code:
void Core::addToList( Device* newDevice )
{
	mDeviceList.push_back( newDevice );
}
To add the device to the library's list of device.

Now when I try to load it via this function

Code:
void Core::Go()
{
	std::vector<Device*>::iterator it;
	for( it=mDeviceList.begin(); it<mDeviceList.end(); it++ )
	{
		(*it)->_initialise();
	}
}
This pops up. Unhandled exception at 0x6098a116 (Engine.dll) in Game.exe: 0xC0000005: Access violation reading location 0x60fb967c.

I tried to call _initialize on the addToList function by using this function, and it works fine.

Code:
void Core::addToList( Device* newDevice )
{
	newDevice->_initialise();
}
I don't know what did I do wrong. This is the first time I create some dll and library. I hope you understand what I'm trying to say.

Thank you
Sarah22