<div dir="ltr"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><br></div><div dir="ltr"><div dir="ltr"><div dir="ltr">for Sven:<div><br></div><div>>Is the function declared inside an "extern "C"" block? <br></div><div><br></div><div>no</div><div><br></div><div>The code says:</div><div><br></div><div><div>using System;</div><div>using System.Collections.Generic;</div><div>using System.Linq;</div><div>using System.Text;</div><div>using System.Threading.Tasks;</div><div><br></div><div>using System.Runtime.InteropServices;</div><div>using System.Drawing;</div><div>using System.Drawing.Imaging;</div><div><br></div><div><br></div><div>namespace SkinAnalyzer</div><div>{</div><div>    public class ImageProcessing</div><div>    {</div><div>        //--------------------------------------------------------------------------------------------</div><div>        public ImageProcessing()</div><div>        {</div><div>            // init., if necessary</div><div>        }</div><div><br></div><div>        //--------------------------------------------------------------------------------------------</div><div>        // get the features</div><div><br></div><div>        public bool GetSkinFeatures(Bitmap Input_Bitmap, Rectangle ROI_Rect, double[] ExtractedFeatures)</div><div>        {</div><div>            // check the parameters</div><div>            if (Input_Bitmap == null)</div><div>                return false;</div><div>            if (Input_Bitmap.PixelFormat != PixelFormat.Format8bppIndexed &&</div><div>                    Input_Bitmap.PixelFormat != PixelFormat.Format24bppRgb &&</div><div>                    Input_Bitmap.PixelFormat != PixelFormat.Format32bppArgb &&</div><div>                    Input_Bitmap.PixelFormat != PixelFormat.Format32bppRgb)</div><div>                return false;</div><div><br></div><div>            // get the input pixels</div><div>            Rectangle rect1 = new Rectangle(0, 0, Input_Bitmap.Width, Input_Bitmap.Height);</div><div>            BitmapData input_data = Input_Bitmap.LockBits(rect1, ImageLockMode.ReadOnly, Input_Bitmap.PixelFormat);</div><div>            IntPtr ptr1 = input_data.Scan0;</div><div>            int bytesbpp = 0;    // bytes_per_pixel</div><div>            switch (Input_Bitmap.PixelFormat)</div><div>            {</div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 1, 2021 at 10:08 AM duilio foschi <<a href="mailto:octopushole@gmail.com" target="_blank">octopushole@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I am corrected. The DLL is written in c#. It seems that Bitmap and Rectangle are common predefined/usable objects in C#.<br><br>Re Bitmap, I found these notes:<br>"Surely you cannot expect C# Bitmap to be binary compatible with Delphi TBitmap? You need to pass around an HBITMAP. On the Delphi side you use ReleaseHandle to get the HBITMAP. On the C# side it would be Image.FromHbitmap"<br><br>Re Rectangle, I found nothing interesting :(<div><br></div><div>However it seems natural to expect that Rectangle it is given by a pointer to a fixed array of 2 points= 4 integers= 16 bytes in all.</div><div><div><br></div><div>Thank you<br>Duilio</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 1, 2021 at 7:52 AM Sven Barth <<a href="mailto:pascaldragon@googlemail.com" target="_blank">pascaldragon@googlemail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">duilio foschi via lazarus <<a href="mailto:lazarus@lists.lazarus-ide.org" target="_blank">lazarus@lists.lazarus-ide.org</a>> schrieb am So., 31. Jan. 2021, 23:23:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">I would like to use a function exported from a DLL. The DLL was written in C++ (<span>Visual Studio 2015).</span></div><div dir="ltr"><span><br></span></div><div><span>Inside the original code the function is declared as </span></div><div><span><br></span></div><div><span><div>        public bool GetSkinFeatures(Bitmap Input_Bitmap, Rectangle ROI_Rect, double[] ExtractedFeatures)</div><div><br></div><div>Anybody knows how to use it from Lazarus?</div></span></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Can you also show the declarations of Bitmap and Rectangle? Is the function declared inside an "extern "C"" block? </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
</blockquote></div></div></div>
</blockquote></div>
</blockquote></div>
</div></div>