我有這樣寫的DLL中的德爾福功能:如何將位圖傳遞給Delphi在C#中編寫的dll?
function LensFlare(Bitmap: TBitmap; X, Y: Int32; Brightness: Real): TBitmap; StdCall;
Begin
// ...
Result := Bitmap;
End;
我想在C#中使用它, 我都試過,但我沒有成功:
[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!
}
錯誤:「試圖讀取或寫入受保護的內存,這通常表示其他內存已損壞。「
我該怎麼做?
我做了同樣的事情,但在C#中發生此錯誤:「在GDI +中發生了一般性錯誤」。在Delphi中,我做了「var B:TBitmap; ... B.Handle:= Bitmap; B.SaveToFile(」D:\ A.BMP「);」它的工作原理是「B.Handle:= Bitmap;」導致一個問題! –