J'ai une fonction Delphi dans une dll écrite comme ceci:Comment passer un bitmap à une DLL écrite par Delphi en C#?
function LensFlare(Bitmap: TBitmap; X, Y: Int32; Brightness: Real): TBitmap; StdCall;
Begin
// ...
Result := Bitmap;
End;
Je veux l'utiliser en C#, j'ai essayé mais je n'a pas réussi:
[DllImport("ImageProcessor")]
static extern Bitmap LensFlare(Bitmap bitmap, int x, int y, double Brightness);
private void button1_Click(object sender, EventArgs e)
{
Bitmap b = new Bitmap(@"d:\a.bmp");
pictureBox1.Image = LensFlare(b, 100, 100, 50); // Error!
}
Erreur: " Vous avez tenté de lire ou d'écrire de la mémoire protégée, ce qui indique souvent que d'autres mémoires sont corrompues. "
Comment est-ce que je peux faire ceci?
J'ai fait la même chose mais en C# cette erreur se produit: "Une erreur générique s'est produite dans GDI +.". En Delphi j'ai fait "var B: TBitmap; ... B.Handle: = Bitmap; B.SaveToFile (" D: \ A.BMP ");" cela fonctionne mais "B.Handle: = Bitmap;" provoque un problème! –