我的同事和我自己编写了一个 DLL,我们现在正尝试在另一个应用程序中使用它。当我们在使用网络摄像头时在应用程序中使用该 DLL 中的函数时,应用程序会崩溃。当我们复制并粘贴完全相同的代码时,应用程序就可以工作了。如果我们使用图像而不是网络摄像头,那么它也适用于 DLL。我们制作了一个新应用程序只是为了对其进行测试,但在使用该 DLL 时仍然无法正常工作。
我们真的很困惑,因为我们得到了不同的异常,我们真的不知道出了什么问题。是否有任何一般错误可能导致此问题?有没有办法调试这个?
代码如下:
private glyphRecognizer recognize = new glyphRecognizer();
picturebox1.image = recognize.recognitionStep1_Grayscaling((Bitmap)picturebox1.image);
对于 DLL:
public Bitmap recognitionStep1_Grayscaling(Bitmap image)
{
BitmapData data = image.LockBits(new Rectangle(0, 0, image.Width, image.Height), ImageLockMode.ReadOnly, image.PixelFormat);
UnmanagedImage originalImage = new UnmanagedImage(data);
image.UnlockBits(data);
//grayscaling
UnmanagedImage grayImage = null;
if (data.PixelFormat == PixelFormat.Format8bppIndexed)
{
grayImage = originalImage;
}
else
{
grayImage = UnmanagedImage.Create(originalImage.Width, originalImage.Height, PixelFormat.Format8bppIndexed);
Grayscale.CommonAlgorithms.BT709.Apply(originalImage, grayImage);
}
return grayImage.ToManagedImage();
}