Pixel.to.life wrote:
Quote:
Thanks Ben.
>
I tried that, now it compiled file. But the memory address of the
original image and the one I receive inside ChangeImage(..) is still
different. Is there a rul for calling this method too?
>
I call it like this:
>
// In a form's scope
Bitmap ^m_Bitmap;
>
>
ManagedImageModifier<MyModifiermodifier;
>
bool result = modifier.ChangeImage(m_Bitmap);
Does it still misbehave when simplified?
Try this:
Bitmap ^m_Bitmap;
m_Bitmap = gcnew Bitmap(64, 64);
::System::Diagnostics::Trace::WriteLine("m_Bitmap " + ((m_Bitmap ==
nullptr)? "is": "is not") + " NULL");
ChangeImage(m_Bitmap);
::System::Diagnostics::Trace::WriteLine("m_Bitmap " + ((m_Bitmap ==
nullptr)? "is": "is not") + " NULL");
bool ChangeImage(Bitmap^% bmp) { bmp = nullptr; return true; }
Then move ChangeImage into your template class as a static method, call it
there, test again.
Then make ChangeImage an instance method, test again.
Then start adding the ChangeImage logic.
I suspect that ChangeImage didn't reach the line which reassigned the
parameter to a new value. It is declared with a return value but you aren't
checking it.